Comment mesurer les performances d'un serveur virtuel?

10

J'ai un VPS sous Ubuntu. En tant que serveur virtuel, je comprends qu’il partage des ressources avec un nombre inconnu d’autres serveurs, et je remarque qu’il est considérablement plus lent que mon ordinateur de bureau.

Existe-t-il un outil permettant de mesurer les performances de la machine virtuelle ? Je serais curieux de voir une mesure approximative similaire aux bogomips, peut-être pour les processeurs (opérations / sec), la mémoire et la vitesse de lecture / écriture des disques. Je voudrais pouvoir comparer ces chiffres à mon ordinateur de bureau.

Je ne suis pas intéressé par les spécifications de la machine physique sur laquelle tourne mon VPS - en faisant cat /proc/cpuinfo Je peux voir que c'est une belle machine Xeon à quatre cœurs, mais cela ne me dérange pas. Je suis essentiellement intéressé par la vitesse à laquelle un programme s'exécuterait dans mon VPS - combien d'opérations de processeur il peut produire en une seconde, combien d'octets pour écrire dans la RAM ou sur le disque.

Je n’ai qu’un accès SSH à la machine, donc l’outil doit être en ligne de commande.

Je pourrais écrire un script qui, par exemple, effectue des calculs en boucle pendant une seconde et compte le nombre de boucles qu'il était capable de faire, ou quelque chose de similaire pour mesurer les performances du disque et de la RAM. Mais je suis sûr que quelque chose comme cela existe déjà.

    
posée Sergey 07.03.2012 - 05:29
la source

2 réponses

13

Eh bien, puisque personne ne veut répondre ...:)

La recherche de Synaptic pour "bench" trouve de nombreuses suites d’analyse capables de tester différents aspects d’une machine. Le seul dont j'ai entendu parler précédemment est phoronix-test-suite , que je suis sûr que je suis très complet, même si mon temps d'attention limité ne m'a pas permis de comprendre comment l'utiliser.

Puis, j'ai trouvé UnixBench , qui est décrit comme

  

UnixBench est la suite de tests BYTE UNIX originale, mise à jour et   révisé par de nombreuses personnes au fil des ans.

     

Le but d’UnixBench est de fournir un indicateur de base du   performance d'un système de type Unix; ... Ces résultats de test   sont ensuite comparés aux scores d'un système de base pour produire un   valeur d'index, qui est généralement plus facile à gérer que les scores bruts.

     

Les systèmes multi-processeurs sont gérés. ... Les tests comparent les systèmes Unix par   comparer leurs résultats à un ensemble de scores défini en exécutant le code sur   un système de référence, qui est un SPARCstation 20-61 (évalué à 10,0).

UnixBench est mentionné par Linode comme un outil pour tester les performances des VM dans cet article :

  

En utilisant un matériel identique, les Linodes KVM sont beaucoup plus rapides que Xen.   Par exemple, dans notre test UnixBench, une Linode KVM a été 3 fois plus performante   qu'une Linode Xen.

La suite de tests N'EST PAS dans les dépôts Ubuntu, mais il est trivial de la télécharger et de la compiler:

wget https://github.com/kdlucas/byte-unixbench/archive/master.zip
unzip ./master.zip
cd ./byte-unixbench-master/UnixBench
./Run

Les tests durent un certain temps. La sortie ressemble à

------------------------------------------------------------------------
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

Ce qui signifie que le VPS en question a un score de 249,7 pour une tâche unique et 592,5 pour un traitement parallèle.

Mon ordinateur de bureau, tout en ayant des spécifications similaires ou inférieures à celles de la machine physique sur laquelle mon serveur VPS s'exécute, a généré un score de 1409.7 pour une tâche unique et 5156.3 pour un traitement parallèle . Exactement le genre de métrique que je cherchais.

Une autre mesure importante est la vitesse du réseau. J'ai trouvé un script qui télécharge des fichiers de test de différents endroits et mesure la vitesse de téléchargement. Le script peut être exécuté avec

wget freevps.us/downloads/bench.sh -O - -o /dev/null|bash

(bien qu’il soit probablement plus sûr de télécharger le script et d’inspecter son contenu avant de le lancer)

Pour surveiller la latence d'E / S du disque, il existe l'utilitaire ioping qui peut être installé à partir des référentiels 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
...
    
réponse donnée Sergey 16.10.2012 - 07:01
la source
0

Cela peut ne pas être possible. Vous ne fournissez aucun détail, donc personne ne peut fournir de réponses spécifiques. Mais tous les VPS ne signifient pas le matériel virtuel. Vous avez toutes sortes de solutions différentes, comme Linux Containers (LXC), qui diffère radicalement du rendu d'une machine virtuelle avec certaines spécificités.

Le seul point de partage du matériel est de le réutiliser. Dans votre cas, même si vous utilisez du matériel virtualisé, vous ne pouvez pas être certain d'être le seul à l'utiliser. Si vous avez besoin d'informations sur l'utilisation du matériel, vous devriez plutôt obtenir un serveur physique co-localisé.

    
réponse donnée Jo-Erlend Schinstad 07.03.2012 - 05:43
la source

Lire d'autres questions sur les étiquettes