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 à bogomips, éventuellement pour le processeur (opérations/s), la mémoire et la vitesse de lecture/écriture du disque. J'aimerais pouvoir comparer ces chiffres à mon ordinateur de bureau.
Je ne m'intéresse pas aux spécifications de la machine physique sur laquelle mon VPS fonctionne - en faisant cat /proc/cpuinfo
je peux voir que c'est une belle machine Xeon à quatre cœurs, mais peu importe pour moi. Je suis fondamentalement intéressé par la vitesse d'exécution d'un programme dans mon VPS - le nombre d'opérations de processeur qu'il peut effectuer en une seconde, le nombre d'octets à écrire sur 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 dans une boucle pendant une seconde et compte le nombre de boucles qu'il a été capable de faire, ou quelque chose de similaire pour mesurer les performances du disque et RAM. Mais je suis sûr que quelque chose comme ça existe déjà.
Eh bien, puisque personne ne veut répondre ... :)
En recherchant "bench" dans Synaptic, on trouve un grand nombre de suites d'analyse permettant de tester différents aspects d'une machine. Le seul sujet dont j'ai entendu parler auparavant est phoronix-test-suite
, qui, j'en suis sûr, est très complet, bien que ma courte durée d'attention ne me permette pas de comprendre comment l'utiliser.
Puis j'ai trouvé nixBench , qui est décrit comme
UnixBench est la suite de tests BYTE UNIX d'origine, mise à jour et révisée par de nombreuses personnes au fil des ans.
UnixBench a pour objectif de fournir un indicateur de base des performances 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 une 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 en comparant leurs résultats à un ensemble de scores en exécutant le code sur un système de référence, qui est une SPARCstation 20-61 (évaluée à 10,0).
UnixBench est mentionné par Linode comme un outil pour VM tester les performances de cet article de blog :
En utilisant un matériel identique, KVM, les linodes sont beaucoup plus rapides que Xen. Par exemple, dans notre test UnixBench, un KVM Linode a obtenu un résultat 3 fois supérieur à un Linode Xen.
La suite de tests ne se trouve pas dans les dépôts Ubuntu, mais il est facile 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 prennent un certain temps pour finir. 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 le traitement en parallèle.
Mon ordinateur de bureau, tout en ayant des spécifications similaires ou inférieures à la machine physique sur laquelle mon VPS est exécuté, a généré un score de 1409.7 pour une tâche unique et 5156.3 pour le traitement en parallèle. Exactement le type 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 depuis différents emplacements 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 serait probablement plus sûr de télécharger le script et d'inspecter son contenu avant de l'exécuter)
Pour contrôler la latence des E/S du disque, un utilitaire ioping
peut être installé à partir de 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
...
Cela peut ne pas être possible. Vous ne fournissez aucun détail, personne ne peut donc fournir de réponses précises. Mais tous les VPS ne signifient pas du matériel virtuel. Vous avez toutes sortes de solutions différentes, comme les conteneurs Linux (LXC), ce qui est radicalement différent 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 sûr d'être le seul à l'utiliser. Si vous avez besoin d'informations sur l'utilisation du matériel, vous devriez plutôt vous procurer un serveur physique colocalisé.