Bagaimana cara mengukur kinerja server virtual?

11

Saya punya VPS yang menjalankan Ubuntu. Menjadi server virtual, saya mengerti bahwa ia membagikan sumber daya dengan jumlah server lain yang tidak diketahui, dan saya memperhatikan bahwa server ini jauh lebih lambat daripada mesin desktop saya.

Apakah ada alat untuk mengukur kinerja mesin virtual ? Saya ingin tahu melihat ukuran perkiraan yang mirip dengan bogomips, mungkin untuk CPU (operasi / detik), memori dan kecepatan baca / tulis disk. Saya ingin dapat membandingkan angka-angka itu dengan mesin desktop saya.

Saya tidak tertarik dengan spesifikasi mesin fisik aktual yang VPS saya jalankan - dengan melakukan cat /proc/cpuinfosaya dapat melihat bahwa itu adalah mesin Xeon quad-core yang bagus, tapi itu tidak masalah bagi saya. Saya pada dasarnya tertarik pada seberapa cepat suatu program akan berjalan di VPS saya - berapa banyak operasi CPU yang dapat dibuat dalam satu detik, berapa banyak byte untuk menulis ke RAM atau ke disk.

Saya hanya memiliki akses ssh ke mesin sehingga alat harus berupa baris perintah.

Saya dapat menulis sebuah skrip yang, katakanlah, melakukan beberapa perhitungan dalam satu lingkaran selama satu detik dan menghitung berapa banyak loop yang dapat dilakukan, atau sesuatu yang serupa untuk mengukur kinerja disk dan RAM. Tapi saya yakin sesuatu seperti ini sudah ada.

Sergey
sumber

Jawaban:

14

Yah, karena tidak ada yang mau menjawab ... :)

Mencari Synaptic untuk "bangku" menemukan banyak suite pembandingan yang mampu menguji berbagai aspek mesin. Satu-satunya yang saya dengar sebelumnya adalah phoronix-test-suite, yang saya yakin sangat komprehensif meskipun rentang perhatian pendek saya tidak memungkinkan saya untuk mengetahui cara menggunakannya.

Kemudian saya menemukan UnixBench , yang digambarkan sebagai

UnixBench adalah suite benchmark BYTE UNIX asli, diperbarui dan direvisi oleh banyak orang selama bertahun-tahun.

Tujuan UnixBench adalah untuk memberikan indikator dasar kinerja sistem mirip Unix; ... Hasil tes ini kemudian dibandingkan dengan skor dari sistem dasar untuk menghasilkan nilai indeks, yang umumnya lebih mudah ditangani daripada skor mentah.

Sistem multi-CPU ditangani. ... Pengujian membandingkan sistem Unix dengan membandingkan hasilnya dengan serangkaian skor yang ditetapkan dengan menjalankan kode pada sistem patokan, yang merupakan SPARCstation 20-61 (diberi peringkat 10,0).

UnixBench disebutkan oleh Linode sebagai alat untuk pengujian kinerja VM di posting blog ini :

Menggunakan perangkat keras yang identik, KVM Linodes jauh lebih cepat dibandingkan dengan Xen. Misalnya, dalam pengujian UnixBench kami, KVM Linode mencetak 3x lebih baik daripada Xen Linode.

Test suite BUKAN dalam repositori Ubuntu, tetapi itu sepele untuk mengunduh dan mengompilasinya:

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

Tes membutuhkan waktu beberapa saat untuk menyelesaikannya. Outputnya seperti

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

Yang berarti bahwa VPS yang dimaksud memiliki skor 249,7 untuk tugas tunggal dan 592,5 untuk pemrosesan paralel.

Mesin desktop saya, walaupun memiliki spesifikasi yang mirip atau lebih rendah dari mesin fisik VPS saya berjalan, menghasilkan skor 1409,7 untuk tugas tunggal dan 5156,3 untuk pemrosesan paralel. Jenis metrik yang saya cari.

Metrik penting lainnya adalah kecepatan jaringan. Saya telah menemukan skrip yang mengunduh file uji dari berbagai lokasi dan mengukur kecepatan unduhan. Script dapat dijalankan dengan

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

(walaupun mungkin akan lebih aman untuk mengunduh skrip dan memeriksa isinya sebelum berjalan)

Untuk memantau latensi I / O disk terdapat iopingutilitas yang dapat diinstal dari repositori 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
...
Sergey
sumber
UnixBench sekarang ada di Github: github.com/kdlucas/byte-unixbench
m0j0
@ m0j0: Saya telah memodifikasi jawaban untuk mencerminkan bahwa itu dihosting di GitHub sekarang, terima kasih
Sergey
2 perintah ini wget https://github.com/kdlucas/byte-unixbench/archive/master.zip && unzip ./master.zipbisa diganti dengan adil git clone https://github.com/kdlucas/byte-unixbench.
Hi-Angel
0

Itu mungkin tidak mungkin. Anda tidak memberikan detail apa pun, jadi tidak ada yang bisa memberikan jawaban spesifik. Tetapi tidak semua VPS berarti perangkat keras virtual. Anda memiliki semua jenis solusi yang berbeda, seperti Linux Containers (LXC) yang secara radikal berbeda dari membuat mesin virtual dengan spesifikasi tertentu.

Satu-satunya titik berbagi perangkat keras adalah menggunakannya kembali. Dalam kasus Anda, bahkan jika Anda menggunakan perangkat keras tervirtualisasi, Anda tidak dapat memastikan Anda satu-satunya yang menggunakannya. Jika Anda memerlukan informasi tentang pemanfaatan perangkat keras, maka Anda harus mendapatkan server fisik yang terletak bersama.

Jo-Erlend Schinstad
sumber
Ahh, saya pikir Anda salah mengerti saya - saya tidak berbicara tentang mesin fisik yang mendasarinya. Saya telah memperbarui pertanyaan saya.
Sergey
Ya, tapi tetap saja. Komputer mungkin tidak sama dari satu saat ke saat lain, jadi rata-rata apa pun tidak berguna. Dalam satu saat, mungkin memiliki 16 core CPU dan 32GB RAM dan yang lain, 1 core dan RAM 512MB. Rata-rata mungkin sangat buruk atau lebih baik dari yang dimungkinkan secara teoritis, tergantung pada saat Anda menghitung. Anda bisa mendapatkan beberapa data dari "ps ax", "top", "iotop" dan "uptime", tetapi itu tidak akan berarti banyak.
Jo-Erlend Schinstad
2
Ok, contoh: Saya gzip file 1Gb di netbook saya dan mengukur waktu yang diperlukan untuk melakukan tugas. Lalu saya gzip file yang sama di desktop saya - ternyata desktop saya melakukannya 3 kali lebih cepat dari netbook, jadi saya memberi mereka "peringkat gzip" masing-masing 100 dan 300. Lalu saya kompres file yang sama pada VPS dan menemukan, katakanlah, bahwa pada saat tes itu 1,5 kali lebih cepat dari netbook tetapi masih 2 kali lebih lambat dari desktop - jadi itu "faktor gzip" dari 150. Saya bisa menyusun sesuatu seperti ini sendiri, tetapi tentu saja mengukur kinerja adalah masalah umum
Sergey
Mengukur kinerja tidak masalah, selama Anda tahu komputer mana yang Anda ukur. Dengan VPS, Anda tidak perlu tahu itu. Mungkin dipindahkan di antara banyak komputer yang sama sekali berbeda tanpa sepengetahuan Anda, prosesor mungkin ditambahkan dan dihapus, RAM ditambahkan dan dihapus, dll. Atau VPS lain mulai menggunakan banyak CPU selama 25 detik, membuat VPS Anda lebih lambat. Ada terlalu banyak variabel.
Jo-Erlend Schinstad
Kedengarannya seperti ada ceruk untuk alat monitor kinerja vps.
justingrif