desarrollo-web-br-bd.com

¿Cómo mido el rendimiento de un servidor virtual?

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.

10
Sergey

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
...
14
Sergey

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.

0