Tengo un VPS con Ubuntu. Al ser un servidor virtual, entiendo que comparte recursos con un número desconocido de otros servidores, y me doy cuenta de que es considerablemente más lento que mi máquina de escritorio.
¿Existe alguna herramienta para medir el rendimiento de máquina virtual? Sería curioso ver alguna medida aproximada similar a bogomips, posiblemente para CPU (operaciones/seg), memoria y velocidad de lectura/escritura del disco. Me gustaría poder comparar esos números con mi máquina de escritorio.
No estoy interesado en las especificaciones de la máquina física real en la que se ejecuta mi VPS; al hacer cat /proc/cpuinfo
puedo ver que es una máquina Xeon quad-core de Niza, pero no me importa. Básicamente, estoy interesado en qué tan rápido se ejecutaría un programa en mi VPS: cuántas operaciones de CPU puede realizar en un segundo, cuántos bytes escribir en RAM o en el disco.
Solo tengo acceso ssh a la máquina, por lo que la herramienta debe ser de línea de comandos.
Podría escribir un script que, por ejemplo, haga algunos cálculos en un bucle por un segundo y cuente cuántos bucles pudo hacer, o algo similar para medir el rendimiento del disco y RAM. Pero estoy seguro de que algo como esto ya existe.
Bueno, ya que nadie quiere responder ... :)
Al buscar "bench" en Synaptic se encuentran muchas suites de benchmarking capaces de probar diferentes aspectos de una máquina. El único que escuché anteriormente es phoronix-test-suite
, que estoy seguro es muy completo, aunque mi breve capacidad de atención no me permitió descubrir cómo usarlo.
Luego encontré nixBench , que se describe como
UnixBench es el conjunto de pruebas BYTE UNIX original, actualizado y revisado por muchas personas a lo largo de los años.
El propósito de UnixBench es proporcionar un indicador básico del rendimiento de un sistema similar a Unix; ... Estos resultados de la prueba se comparan luego con los puntajes de un sistema de referencia para producir un valor de índice, que generalmente es más fácil de manejar que los puntajes brutos.
Se manejan sistemas con múltiples CPU. ... Las pruebas comparan los sistemas Unix comparando sus resultados con un conjunto de puntajes al ejecutar el código en un sistema de referencia, que es una SPARCstation 20-61 (con una calificación de 10.0).
UnixBench es mencionado por Linode como una herramienta para VM pruebas de rendimiento en esta publicación de blog :
Utilizando hardware idéntico, KVM Linodes son mucho más rápidos en comparación con Xen. Por ejemplo, en nuestras pruebas de UnixBench, un KVM Linode obtuvo un puntaje 3 veces mejor que un Xen Linode.
El conjunto de pruebas NO está en los repositorios de Ubuntu, pero es trivial descargarlo y compilarlo:
wget https://github.com/kdlucas/byte-unixbench/archive/master.Zip
unzip ./master.Zip
cd ./byte-unixbench-master/UnixBench
./Run
Las pruebas tardan un tiempo en terminar. La salida se ve como
------------------------------------------------------------------------
Benchmark Run: Mon Oct 15 2012 23:55:22 - 00:23:16
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 12015218.4 lps (10.0 s, 7 samples)
Double-Precision Whetstone 2214.8 MWIPS (10.1 s, 7 samples)
Execl Throughput 896.9 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 58968.3 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 14578.6 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 422068.2 KBps (30.0 s, 2 samples)
Pipe Throughput 70993.3 lps (10.0 s, 7 samples)
Pipe-based Context Switching 16001.5 lps (10.0 s, 7 samples)
Process Creation 1861.8 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2525.5 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 737.8 lpm (60.1 s, 2 samples)
System Call Overhead 432496.2 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 12015218.4 1029.6
Double-Precision Whetstone 55.0 2214.8 402.7
Execl Throughput 43.0 896.9 208.6
File Copy 1024 bufsize 2000 maxblocks 3960.0 58968.3 148.9
File Copy 256 bufsize 500 maxblocks 1655.0 14578.6 88.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 422068.2 727.7
Pipe Throughput 12440.0 70993.3 57.1
Pipe-based Context Switching 4000.0 16001.5 40.0
Process Creation 126.0 1861.8 147.8
Shell Scripts (1 concurrent) 42.4 2525.5 595.6
Shell Scripts (8 concurrent) 6.0 737.8 1229.7
System Call Overhead 15000.0 432496.2 288.3
========
System Benchmarks Index Score 249.7
------------------------------------------------------------------------
Benchmark Run: Tue Oct 16 2012 00:23:16 - 00:51:20
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables 42619039.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 8274.0 MWIPS (10.4 s, 7 samples)
Execl Throughput 3398.5 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 68332.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 21462.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 718205.6 KBps (30.0 s, 2 samples)
Pipe Throughput 149713.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 61968.3 lps (10.0 s, 7 samples)
Process Creation 5321.7 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 5957.1 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 812.6 lpm (60.1 s, 2 samples)
System Call Overhead 1557391.5 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 42619039.2 3652.0
Double-Precision Whetstone 55.0 8274.0 1504.4
Execl Throughput 43.0 3398.5 790.4
File Copy 1024 bufsize 2000 maxblocks 3960.0 68332.4 172.6
File Copy 256 bufsize 500 maxblocks 1655.0 21462.9 129.7
File Copy 4096 bufsize 8000 maxblocks 5800.0 718205.6 1238.3
Pipe Throughput 12440.0 149713.5 120.3
Pipe-based Context Switching 4000.0 61968.3 154.9
Process Creation 126.0 5321.7 422.4
Shell Scripts (1 concurrent) 42.4 5957.1 1405.0
Shell Scripts (8 concurrent) 6.0 812.6 1354.3
System Call Overhead 15000.0 1557391.5 1038.3
========
System Benchmarks Index Score 592.5
Lo que significa que el VPS en cuestión tiene una puntuación de 249.7 para una sola tarea y 592.5 para procesamiento en paralelo.
Mi máquina de escritorio, aunque tenía especificaciones similares o inferiores a la máquina física en la que se ejecuta mi VPS, produjo un puntaje de 1409.7 para una sola tarea y 5156.3 para procesamiento en paralelo. Exactamente el tipo de métrica que estaba buscando.
Otra métrica importante es la velocidad de la red. Encontré un script que descarga archivos de prueba desde diferentes ubicaciones y mide la velocidad de descarga. El script se puede ejecutar con
wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash
(aunque probablemente sería más seguro descargar el script e inspeccionar su contenido antes de ejecutarlo)
Para monitorear la latencia de E/S del disco, existe la utilidad ioping
que se puede instalar desde los repositorios de Ubuntu:
# ioping . -c 10
4096 bytes from . (ext4 /dev/disk/...): request=1 time=16.4 ms
4096 bytes from . (ext4 /dev/disk/...): request=2 time=16.1 ms
...
Eso puede no ser posible. No proporciona ningún detalle, por lo que nadie puede proporcionar respuestas específicas. Pero no todos los VPS significan hardware virtual. Tiene todo tipo de soluciones diferentes, como Linux Containers (LXC), que es radicalmente diferente de alquilar una máquina virtual con ciertos detalles.
El único punto de compartir hardware es reutilizarlo. En su caso, incluso si está utilizando hardware virtualizado, no puede estar seguro de que es el único que lo utiliza. Si necesita información sobre la utilización del hardware, debería obtener un servidor físico ubicado en su lugar.