Cara Benchmark VPS dengan Betul dan Tepat
Ketahui cara melakukan benchmark VPS menggunakan YABS, fio, sysbench dan iperf3. Fahami mengapa satu ujian sahaja tidak mencukupi untuk menilai prestasi sebenar pelayan anda.
Maksud penanda aras (benchmark) VPS
Untuk melakukan penanda aras pada VPS, anda perlu mengukur empat perkara: kelajuan teras CPU tunggal, lebar jalur memori mesin, jumlah operasi cakera rawak kecil yang dapat diproses oleh storan setiap saat, dan jumlah throughput yang dihantar oleh pautan rangkaian. Satu larian yabs.sh memberikan anda keputusan CPU, cakera, dan rangkaian dalam masa kira-kira sepuluh minit; gunakan ujian memori berasingan di bawah untuk lebar jalur memori. Membaca keputusan adalah bahagian yang lebih sukar, kerana VPS (virtual private server) berkongsi perkakasan fizikal dengan penyewa lain, jadi mesin yang sama boleh melaporkan satu angka pada jam 03:00 dan angka yang sangat berbeza pada jam 20:00.
Rancangan di sini adalah untuk menjalankan yabs.sh bagi mendapatkan gambaran pantas, kemudian jalankan alat di bawahnya secara manual. Menjalankannya sendiri membolehkan anda menukar satu flag, melihat perubahan angka tersebut, dan mempelajari perkara yang sebenarnya diukur oleh angka itu. Lakukan ini selepas mesin disediakan, bukan sebelumnya. Langkah-langkah dalam sepuluh minit pertama pada VPS baharu perlu didahulukan, kerana mesin yang masih dalam proses menjalankan pusingan kemas kini pertama akan memberikan keputusan penanda aras yang buruk atas sebab yang tiada kaitan dengan perkakasan.
Periksa mesin sebelum anda mengukurnya
Separuh daripada setiap penanda aras (benchmark) yang buruk berpunca daripada mesin yang tidak difahami oleh penulisnya.
nproc
lscpu | grep -E 'Model name|Hypervisor|Thread'
free -h
df -hT /
uname -r
systemd-detect-virtHypervisor vendor: KVM bermaksud virtualisasi penuh, jadi anda menjalankan kernel anda sendiri. systemd-detect-virt yang mencetak lxc atau openvz bermaksud virtualisasi kontena: anda berkongsi kernel hos, dan had CPU serta memori anda adalah tetapan cgroup (control group) dan bukannya perkakasan maya. Pada sistem cgroup v2, anda boleh membaca had CPU daripada cgroup kontena anda; laluan berikut terpakai apabila cgroup tersebut dilekapkan (mounted) pada /sys/fs/cgroup.
cat /sys/fs/cgroup/cpu.maxmax 100000 bermaksud cgroup ini tidak mempunyai kuota sendiri; cgroup leluhur masih boleh mengenakan kuota. 200000 100000 bermaksud anda boleh menggunakan 200000 mikrosaat CPU dalam setiap tempoh 100000 mikrosaat, iaitu kuota bernilai dua teras. Pelan yang diiklankan sebagai 4 vCPU dengan kuota dua teras tidak akan mencatatkan prestasi seperti empat teras. Alat penanda aras boleh mengenal pasti sekatan tersebut: VoxelBench melaporkan kuota CPU dan menandakan CPU yang dikongsi atau dihadkan (throttled) apabila hos mendedahkan lebih banyak CPU daripada yang boleh digunakan oleh pelayan.
df -hT / penting atas sebab yang berbeza: lajur Type. Jika ia membaca overlay, anda berada di dalam kontena, dan hasil cakera anda akan menggambarkan apa jua storan yang berada di bawah overlay tersebut. Catatkannya sekarang.
Pantau steal time sepanjang masa
Steal time ialah bahagian masa yang dihabiskan oleh CPU maya anda untuk menunggu secara tidak sukarela semasa hypervisor tidak menjadualkannya. Ia merupakan isyarat berguna bagi masa CPU yang tidak tersedia, namun ia tidak membezakan antara jiran yang sibuk dengan penyedia yang menguatkuasakan kuota CPU anda.
vmstat 1 10Baca lajur st di sebelah kanan. Steal time yang berterusan bermakna masa CPU tidak tersedia kepada tetamu, tetapi nilai melebihi 5% tidak membuktikan hos terlebih langgan (oversubscribed). Penyedia boleh mendedahkan penguatkuasaan kuota CPU sebagai steal time secara sengaja. top menunjukkan angka yang sama seperti %st pada baris CPU. Pastikan vmstat 1 berjalan dalam sesi SSH kedua semasa anda melakukan penanda aras (benchmark), dan catatkan angka steal di sebelah setiap keputusan.
Mulakan dengan yabs.sh
yabs.sh (Yet Another Bench Script) ialah skrip shell yang menjalankan fio, iperf3 dan Geekbench serta mencetak satu ringkasan. Ia menggunakan fio dan iperf3 jika sudah dipasang, dan memuat turun binari statik jika tidak. Ia merupakan bahasa umum dalam perbincangan penanda aras VPS, jadi output yabs ialah cara terpantas untuk membandingkan nota dengan orang lain.
Bentuk satu baris projek itu sendiri adalah seperti berikut.
curl -sL yabs.sh | bashPerintah itu menyalurkan apa sahaja yang dihidangkan oleh URL tersebut terus ke dalam shell. Muat turunnya, baca kandungannya, kemudian jalankannya.
curl -sLo yabs.sh https://raw.githubusercontent.com/masonr/yet-another-bench-script/master/yabs.sh
less yabs.sh
bash yabs.shFlag diletakkan selepas -s -- apabila anda menyalurkan (pipe), atau terus selepas nama fail apabila anda menjalankan salinan tempatan. Flag yang berguna: -f melangkau ujian cakera, -i melangkau ujian rangkaian, -g melangkau Geekbench, -r mengehadkan lokasi iperf3 kepada tiga sahaja, -j mencetak keputusan sebagai JSON, dan -w results.json menulis JSON tersebut ke dalam fail.
bash yabs.sh -r -w yabs-run1.jsonDua perkara perlu diketahui sebelum larian pertama. Geekbench memuat naik keputusan anda dan mencetak URL public browser.geekbench.com, jadi sesiapa yang mempunyai pautan tersebut boleh membaca model CPU dan skor anda. -g melangkau ujian itu sepenuhnya. Kedua, peringkat iperf3 memindahkan trafik sebenar ke pelayan di beberapa wilayah, dan itu akan ditolak daripada kuota lebar jalur bulanan anda. Pada pautan 1 Gbit/s, peringkat rangkaian penuh boleh memindahkan berpuluh-puluh gigabait, jadi gunakan -r jika kuota kecil dan -i pada pautan yang mempunyai had penggunaan.
Makna setiap bahagian output yabs
Bahagian disk menjalankan fio dengan campuran baca dan tulis 50/50 pada empat saiz blok: 4k, 64k, 512k dan 1m. Ia melaporkan IOPS (input/output operations per second) dan lebar jalur bagi setiap satu. Baris 4k ialah baris yang perlu diberi perhatian untuk pangkalan data, pelayan mel, atau sebarang aplikasi yang melakukan banyak penulisan kecil, kerana kebanyakan IO pelayan adalah kecil dan bertaburan. Baris 1m ialah baris untuk sandaran dan video, di mana anda memindahkan aliran bait yang panjang.
Bahagian network menjalankan iperf3 terhadap pelayan awam di beberapa wilayah, dalam kedua-dua arah, menggunakan aliran selari. Anggap nombor yang rendah di sini sebagai satu persoalan dan bukannya jawapan, kerana pelayan iperf3 awam dikongsi dan sering tepu, jadi keputusan yang lemah mungkin berpunca daripada pihak pelayan di hujung sana.
Bahagian Geekbench memberikan skor teras tunggal dan skor berbilang teras. Teras tunggal meramalkan seberapa pantas satu permintaan, satu kompilasi atau satu pertanyaan selesai. Berbilang teras kebanyakannya memberitahu anda berapa banyak teras yang anda benar-benar miliki.
Disk: jalankan fio sendiri
fio (flexible IO tester) ialah alat yang mendasari bahagian cakera yabs, dan menggunakannya secara terus adalah langkah di mana flag mula membawa makna.
sudo apt update && sudo apt install -y fio sysbench iperf3Ujian baca rawak 4k pada queue depth 32, pada sistem fail yang anda benar-benar perlukan:
fio --name=randread4k --filename=./fio-testfile --size=2G --bs=4k \
--rw=randread --ioengine=libaio --iodepth=32 --direct=1 \
--runtime=60 --time_based --group_reportingBaris ringkasan yang perlu dibaca daripada output kelihatan seperti ini.
read: IOPS=184k, BW=719MiB/s (754MB/s)(42.1GiB/60001msec)Di bawahnya, fio mencetak blok clat percentiles. Persentil ke-99.00 ialah angka yang wajar dipetik, kerana ia menunjukkan tempoh masa permintaan paling perlahan dalam setiap seratus permintaan terpaksa menunggu. Latensi purata menyembunyikan gangguan yang sebenarnya disedari oleh pengguna.
--direct=1membuka fail denganO_DIRECT, supaya bacaan memintas cache halaman kernel. Tanpanya, laluan kedua ke atas fail 2G pada mesin dengan 8G RAM akan dilayan daripada memori dan fio akan melaporkan IOPS dalam jutaan. Angka itu benar, tetapi ia adalah angka memori.--ioengine=libaiomenghantar permintaan tak segerak (asynchronous), yang membolehkan--iodepth=32mengekalkan 32 permintaan dalam proses serentak. Dengan enjin segerak sepertipsync, iodepth melebihi 1 tidak memberikan sebarang kesan, jadi anda hanya mengukur satu permintaan pada satu masa.--time_based --runtime=60berjalan untuk tempoh tetap 60 saat dan bukannya jumlah kerja yang tetap, supaya cakera yang pantas dan cakera yang perlahan mendapat tempoh masa yang sama dan perbandingan kekal adil.--size=2Gmenetapkan saiz fail ujian. Pastikan ia lebih besar daripada mana-mana cache dalam laluan tersebut, dan semak dahulu sama ada anda mempunyai ruang kosong yang mencukupi.
Tulis rawak menggunakan arahan yang sama dengan --rw=randwrite. Jalankannya secara berasingan, kemudian padam fail tersebut.
fio --name=randwrite4k --filename=./fio-testfile --size=2G --bs=4k \
--rw=randwrite --ioengine=libaio --iodepth=32 --direct=1 \
--runtime=60 --time_based --group_reporting
rm -f ./fio-testfileUntuk campuran yang lebih hampir dengan trafik sebenar, gunakan --rw=randrw --rwmixread=70. Kelas storan yang anda gunakan akan mengubah keputusan ini lebih daripada mana-mana flag, dan perbezaan tersebut dibincangkan dalam perbezaan antara storan NVMe dan SATA SSD pada VPS.
Apabila fio terhenti dengan Unknown error -1
Direct IO tidak tersedia pada setiap sistem fail, jadi apabila fio gagal pada permintaan pertamanya dengan --direct=1 ditetapkan, Direct IO adalah perkara pertama yang perlu disingkirkan. Kegagalan tersebut mungkin kelihatan seperti ini:
fio: io_u error on file ./fio-testfile: Unknown error -1: read offset=0, buflen=4096
fio: pid=1234, err=-1/file:ioengines.c:321, func=get_events, error=Unknown error -1Jalankan df -hT . terlebih dahulu. Type bagi overlay, iaitu sistem fail yang diberikan oleh Docker kepada kontena secara lalai, bukanlah punca masalah itu sendiri. overlayfs melalukan O_DIRECT ke sistem fail di bawahnya dan hanya menolaknya apabila sistem fail tersebut tidak dapat melakukan Direct IO, jadi --direct=1 --ioengine=libaio berfungsi pada overlay yang berada di atas ext4 atau xfs. Apabila sistem fail di bawah fail ujian benar-benar tidak dapat melakukan Direct IO, fio biasanya akan menyatakan perkara tersebut semasa ia membuka fail: fio: looks like your file system does not support direct=1/buffered=0. Dalam kes itu, halakan --filename ke laluan pada storan tempatan sebenar seperti bind mounted volume, atau jalankan fio pada hos dan bukannya di dalam kontena. Jika storan sebenar tidak dapat dicapai, larian segerak (synchronous) yang berpenimbal (buffered) sekurang-kurangnya membuktikan bahawa arahan itu sendiri adalah betul.
fio --name=randread4k-buffered --filename=./fio-testfile --size=256M --bs=4k \
--rw=randread --ioengine=psync --direct=0 --numjobs=1 \
--runtime=15 --time_based --group_reporting
rm -f ./fio-testfileJujurlah mengenai jenis larian tersebut. Selepas pas pertama, fail 256M itu berada dalam page cache, jadi angka IOPS yang terhasil menggambarkan prestasi RAM anda. Gunakannya untuk mengesahkan bahawa fio telah dipasang dan flag dapat dihuraikan. Jangan sekali-kali memetiknya sebagai hasil cakera.
Mengapa dd bukan penanda aras cakera
dd sering muncul dalam banyak perbincangan VPS, dan ia menjawab satu soalan yang terhad.
dd if=/dev/zero of=./ddtest bs=1M count=1024 oflag=direct conv=fdatasync
rm -f ./ddtestPerintah tersebut mengukur daya pemprosesan tulis jujukan dengan satu thread dan satu permintaan yang sedang diproses. Ia merupakan pemeriksaan kewarasan yang munasabah. Ia tidak memberikan maklumat tentang IO rawak, dan tidak menunjukkan apa yang berlaku apabila 32 permintaan tiba serentak. Gugurkan oflag=direct dan penulisan akan melalui page cache, tetapi conv=fdatasync masih memaksa data output ke storan sebelum perintah selesai. Gugurkan parameter itu juga dan hasilnya mungkin hanya mengukur seberapa pantas kernel anda menerima penulisan ke dalam memori, itulah sebabnya angka dd yang dipetik dalam hantaran forum sering kali tidak masuk akal.
CPU: sysbench cpu
sysbench cpu --cpu-max-prime=20000 --threads=1 run
sysbench cpu --cpu-max-prime=20000 --threads=$(nproc) runAngka yang perlu diperhatikan ialah events per second. Jalankan ujian satu thread terlebih dahulu. Ini adalah angka yang menentukan seberapa cepat satu permintaan PHP selesai atau satu tugasan kompilasi tamat, dan angka ini paling banyak berbeza antara hos pada harga yang sama. Kemudian, jalankan dengan semua thread untuk melihat bagaimana throughput berskala merentas vCPU yang diperuntukkan kepada anda.
Fahami perkara yang diukur oleh ujian ini: sysbench cpu berulang kali mencari nombor perdana melalui pembahagian cubaan. Bagi setiap calon, ia mengambil punca kuasa dua berketepatan ganda (double precision), kemudian menguji pembahagi dengan modulo integer 64-bit, sambil membandingkan setiap pembahagi dengan had titik terapung tersebut. Oleh itu, ia mencampurkan kerja integer dan titik terapung. Ujian ini tidak membebankan lebar jalur memori, unit vektor, atau cache dengan cara yang menyerupai beban kerja sebenar. Maka, ia sesuai untuk membuat perbandingan antara dua hos, tetapi kurang tepat untuk meramalkan prestasi aplikasi anda.
Ubuntu 24.04 membekalkan sysbench 1.0.20, yang mana nama ujian diletakkan di hadapan. Jika anda menyalin arahan dengan --test=cpu daripada catatan lama, anda akan mendapat WARNING: the --test option is deprecated. Skor daripada sysbench 0.4 dan sysbench 1.0 langsung tidak boleh dibandingkan. Oleh itu, jangan sesekali membandingkan ukuran anda dengan angka yang diterbitkan tanpa menyatakan versi perisiannya.
Memori: sysbench memory
sysbench memory --memory-block-size=1M --memory-total-size=20G --memory-oper=write --threads=1 run
sysbench memory --memory-block-size=1M --memory-total-size=20G --memory-oper=read --threads=1 runHasilnya adalah dalam MiB/sec. Kekalkan --memory-block-size pada 1M, dan pastikan ia sama pada setiap hos yang anda bandingkan. Pada 1K, angka tersebut akan menjunam kerana anda menanggung overhead bagi setiap operasi seribu kali ganda lebih kerap, jadi anda akhirnya mengukur kos gelung dan bukannya lebar jalur memori. Ini merupakan flag yang paling kerap tidak sepadan dalam skor memori yang diterbitkan.
Rangkaian: iperf3
Cara yang jujur untuk menguji throughput adalah dengan menggunakan mesin kedua yang anda kawal, kerana dengan cara itu anda mengetahui apa yang dilakukan oleh kedua-dua hujung sambungan.
Pada hujung jauh:
iperf3 -sPerintah itu mendengar pada TCP 5201. Buka port tersebut hanya untuk alamat yang anda gunakan untuk menguji, dan tutup port itu apabila anda selesai. Peraturan asas firewall ufw pada VPS merangkumi sintaks tersebut.
Daripada VPS yang sedang diuji:
iperf3 -c 203.0.113.10 -t 30
iperf3 -c 203.0.113.10 -t 30 -R
iperf3 -c 203.0.113.10 -t 30 -P 8Perintah pertama mengukur muat naik daripada mesin yang sedang diuji. -R menyongsangkan arah, yang mengukur muat turun. -P 8 membuka lapan aliran selari.
Jalankan aliran tunggal dan versi selari kedua-duanya, kerana ia menjawab soalan yang berbeza. Satu sambungan TCP hanya boleh menampung data yang tidak diakui sebanyak yang dibenarkan oleh tetingkapnya, jadi had maksimumnya adalah kira-kira saiz tetingkap dibahagikan dengan masa pergi-balik (round trip time). Pada latensi 80 ms dengan tetingkap 4 MB, had tersebut adalah kira-kira 400 Mbit/s, tidak kira betapa laju pautan di bawahnya. Angka aliran tunggal memberitahu anda kelajuan yang akan diperolehi oleh satu muat turun. Angka selari memberitahu anda kapasiti pautan tersebut.
Perhatikan peruntukan lebar jalur anda semasa melakukan ini. Tiga puluh saat pada 1 Gbit/s memindahkan kira-kira 3.75 GB, dan anda akan menjalankannya beberapa kali dalam setiap arah.
Angka rujukan, dan cara membaca angka anda
Data di sebalik carta ini
[
{
"device": "Local NVMe",
"iops_4k_read": "180,000"
},
{
"device": "Local SATA SSD",
"iops_4k_read": "90,000"
},
{
"device": "Network block",
"iops_4k_read": "12,000"
},
{
"device": "Spinning disk",
"iops_4k_read": "180"
}
]Volum NVMe tempatan dalam keputusan yang diterbitkan biasanya mencapai sekitar 180,000 IOPS bacaan rawak 4k. SSD SATA tempatan pula berada sekitar 90,000. Storan blok yang disambungkan melalui rangkaian, di mana setiap permintaan merentasi rangkaian sebelum sampai ke cakera, berada sekitar 12,000, manakala cakera berputar menguruskan kira-kira 180, kerana ia perlu menggerakkan kepala fizikal bagi setiap permintaan rawak.
Ini adalah angka tipikal yang diterbitkan untuk setiap kelas storan, bukan ukuran daripada satu hos sahaja. Gunakannya untuk satu tujuan: memastikan keputusan anda berada pada magnitud yang betul. Jika pelan yang dijual sebagai NVMe mencatatkan penanda aras dalam lingkungan rendah ribuan IOPS 4k, pertama sekali sahkan --direct=1 telah dihidupkan. Jika sudah, semak had IOPS dan kredit lonjakan (burst credits) pelan tersebut, serta pertikaian storan dan perkakasan yang diiklankan.
Mengapa satu larian bukan penanda aras
Satu keputusan hanyalah gambaran bagi satu minit pada mesin yang dikongsi. Anggap ia sebagai satu sampel sahaja.
- Jalankan setiap ujian sekurang-kurangnya lima kali, yang disebarkan merentasi jam yang berbeza dan sekurang-kurangnya dua hari yang berbeza. Simpan nilai median dan julatnya. Keputusan yang diterbitkan tanpa julat hanyalah angka pemasaran.
- Rekodkan steal time di samping setiap larian. Simpan larian di mana
stadalah tinggi dan siasat sama ada ia mencerminkan perebutan sumber atau kuota CPU pelan tersebut; membuang larian tersebut boleh menyembunyikan prestasi sebenar yang anda terima. - Jalankan ujian cakera pada dua tempoh masa. Banyak pelan memberikan elaun IOPS burst yang diisi semula dari semasa ke semasa, tetapi larian fio selama 60 saat mahupun
--runtime=600tidak menjamin anda telah mengukur prestasi lantai. Kredit AWS gp2 boleh mengekalkan 3,000 IOPS selama sekurang-kurangnya 30 minit daripada baki penuh, jadi kedua-dua larian boleh mengukur prestasi burst. Semak model kredit pembekal dan pantau baki kredit sebelum melabelkan sesuatu keputusan sebagai prestasi mampan. - Pastikan tiada proses lain yang berjalan.
unattended-upgradesmemulakan transaksi apt di tengah-tengah ujian CPU akan menjejaskan mata anda, danps -e -o comm= | grep -E 'apt|dpkg'sebelum setiap larian mengambil masa sesaat. - Ubah satu pemboleh ubah pada satu masa. Versi alat, saiz blok atau bilangan thread yang berbeza menghasilkan angka yang tidak boleh dibandingkan, tidak kira betapa serupa angka tersebut kelihatan.
Apabila anda membandingkan dua pembekal, jalankan ujian pada jam yang sama pada hari yang sama. Jika tidak, anda sebenarnya hanya mengukur waktu hari tersebut.
Uji penanda aras beban kerja anda sendiri pada peringkat akhir
Alat sintetik memberikan kedudukan kepada mesin. Hanya beban kerja anda sendiri yang menentukan sama ada sesebuah mesin itu mencukupi. Ukur masa bagi tugasan yang anda benar-benar lakukan.
time tar -czf /tmp/bench.tgz /usr/share
rm -f /tmp/bench.tgzPerintah tersebut memampatkan beberapa ratus megabait, jadi ia menguji CPU dan cakera secara serentak dan berubah apabila salah satu daripadanya berubah. Amaran Removing leading / from member names adalah perkara biasa. Lebih baik lagi, ukur masa binaan (build) anda sendiri, pertanyaan (query) paling perlahan anda, atau pemaparan halaman anda sendiri. Binaan yang mengambil masa 4 minit pada satu hos dan 7 minit pada hos lain telah menyelesaikan persoalan tersebut, tidak kira apa yang difikirkan oleh Geekbench. Ini juga merupakan ukuran yang memberitahu anda bila penambahan kuasa mesin tidak lagi berbaloi untuk dibayar, perkara yang perlu diketahui sebelum anda membaca kos sebenar VPS sebulan atau memindahkan beban kerja ke pelayan berdedikasi.
FAQ
Mengapa saya mendapat keputusan penanda aras yang berbeza setiap kali saya menjalankannya?
VPS berkongsi CPU fizikal, storan dan rangkaian dengan penyewa lain, jadi keputusan anda bergantung pada aktiviti mereka pada saat itu. Jalankan vmstat 1 semasa ujian dan baca lajur st: steal time yang berterusan merekodkan masa CPU yang tidak tersedia, tetapi ia juga boleh mencerminkan tindakan penyedia dalam menguatkuasakan peruntukan CPU yang anda beli serta persaingan pada hos. Nilai melebihi 5% tidak menentukan punca masalah. Jawapannya terletak pada kaedah, bukan pada penalaan. Jalankan setiap ujian lima kali atau lebih pada waktu yang berbeza, kemudian laporkan nilai median berserta julat perbezaannya.
Mengapa fio melaporkan berjuta-juta IOPS?
Hampir selalu kerana --direct=1 tiada. Tanpanya, fio membaca melalui kernel page cache, jadi selepas pusingan pertama, fail ujian 2G akan dihidangkan daripada RAM dan anda sebenarnya mengukur lebar jalur memori. Tambahkan --direct=1 dan pastikan fail ujian lebih besar daripada mana-mana cache dalam laluan tersebut. Jika --direct=1 kemudian gagal, jalankan df -hT . dan periksa di mana fail ujian itu berada. Jenis overlay bukanlah masalah itu sendiri, kerana overlayfs melalukan O_DIRECT terus ke storan di bawahnya. Pindahkan fail ujian ke storan tempatan sebenar hanya jika sistem fail di bawahnya menolak direct IO.
Adakah yabs.sh mencukupi secara sendirian?
Untuk penilaian awal, ya. Ia menjalankan fio pada empat saiz blok, iperf3 dalam kedua-dua arah dan Geekbench, serta mencetak satu ringkasan yang boleh dibaca oleh orang lain. Ia tidak lagi mencukupi apabila anda ingin mengetahui sebab sesuatu angka itu terhasil, kerana anda tidak boleh mengubah flag bagi setiap ujian. Apabila keputusan yabs kelihatan salah, hasilkan semula dengan fio atau sysbench secara terus dan ubah satu flag pada satu masa.
Angka tunggal manakah yang meramalkan prestasi aplikasi saya?
Kelajuan CPU teras tunggal dan kependaman bacaan rawak 4k, mengikut urutan tersebut, bagi kebanyakan beban kerja web dan pangkalan data. Angka throughput kelihatan mengagumkan tetapi jarang menentukan apa-apa, kerana permintaan tipikal adalah kecil. Petik persentil ke-99 daripada blok clat percentiles fio dan bukannya purata, kerana satu permintaan perlahan dalam seratus adalah perkara yang disedari oleh pengguna.
Adakah saya perlu memasang apa-apa sebelum melakukan penanda aras?
fio, sysbench dan iperf3 semuanya terdapat dalam arkib Ubuntu dan Debian: sudo apt install -y fio sysbench iperf3. yabs.sh berjalan dalam Bash dan memerlukan curl atau wget untuk muat turun, serta tar untuk mengekstrak Geekbench; tanpa tar, ia akan melangkau Geekbench. Ia menggunakan fio dan iperf3 apabila dipasang dan memuat turun binari statik apabila ia tiada. Padamkan setiap fail ujian apabila selesai, kerana fail fio 2G yang tertinggal pada cakera 20G akan menjadi amaran cakera penuh bagi seseorang beberapa minggu kemudian.