Basis pengetahuan

Curi waktu, dan mengapa waktu Anda terbaca nol

Curi waktu adalah hypervisor mengakui tamu lain mengambil inti Anda; pada inti khusus tidak ada yang bisa diambil, jadi bagian yang berguna adalah apa yang harus diperiksa sebagai gantinya.

Dari mana angka itu berasal

%st dalam top adalah bagian waktu saat CPU virtual Anda dalam kondisi bisa dijalankan tetapi tidak dijadwalkan pada inti fisik, sebagaimana dilaporkan oleh hypervisor. Penghitung ini ada karena tamu tidak dapat membedakan antara inti yang lambat dan inti yang tidak pernah diterimanya.

top -bn1 | head -3
vmstat 1 5
mpstat -P ALL 1 5

Nilai mentah, bagi siapa pun yang membuat grafiknya sendiri, adalah bidang kedelapan dari baris cpu dalam /proc/stat, dihitung dalam USER_HZ:

grep -w cpu /proc/stat

Mengapa nilainya nol di sini

Inti dialokasikan satu kali. vCPU pada instance Anda dipasang ke inti fisik yang tidak termasuk dalam alokasi siapa pun, pada host yang tidak mengalami oversubscription, sehingga tidak ada antrean untuk menunggu. Bukan angka rendah, bukan saldo kredit yang habis pada hari keempat bulan — tidak ada yang bisa dicuri.

Jika milik Anda tidak nol, itu adalah cacat dan kami menginginkan tiket tersebut. Sertakan keluaran mpstat -P ALL 5 12 dan ID instance.

Mengapa angka orang lain tidak nol

Paket burstable dibangun dari steal time. Beberapa tamu berbagi inti, masing-masing memegang saldo kredit, dan ketika saldo habis, penjadwal menyerahkan inti kepada orang lain. Dijual dengan jujur, itu adalah produk yang sah untuk beban kerja yang idle. Bukan ini. Kami menghapus tier murah pada 2021 dan overselling pergi bersamanya.

Apa yang perlu diperiksa ketika mesin terasa lambat tetap saja

Steal adalah hal pertama yang dilihat semua orang dan jarang menjadi jawabannya. Berdasarkan urutan kemungkinan:

Antrean proses

vmstat 1 5

Lebih banyak thread yang bisa dijalankan daripada inti, di kolom r, berarti Anda kehabisan CPU. Tidak ada tuning yang bisa menciptakan inti tambahan.

Disk

iostat -x 1 5

%iowait yang naik sementara waktu pengguna tetap rendah menunjukkan penyimpanan, bukan prosesor.

cgroup Anda sendiri

Ini yang menjebak orang. Kontainer dengan kuota CPU terasa persis seperti steal time dari dalam proses dan melaporkan steal nol, karena batasnya milik Anda, bukan kami:

cat /sys/fs/cgroup/cpu.stat

nr_throttled dan throttled_usec yang naik berarti kuota yang ditetapkan oleh orkestrator Anda sendiri adalah batasnya. Naikkan atau hapus.

Frekuensi

Clock boost bergerak mengikuti beban kerja, dan tes single-threaded adalah cara jujur untuk melihat posisi Anda sebenarnya:

apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 run

Bandingkan angka peristiwa per detik dengan instance lain, bukan dengan angka dari posting blog seseorang tahun 2019.

Kolom guest dan nested

%guest dan %gnice tidak nol hanya ketika Anda menjalankan mesin virtual di dalam instance Anda. Virtualisasi nested tersedia pada paket EPYC yang lebih besar dan pada bare metal; periksa perangkatnya sebelum merancang berdasarkan itu:

ls -l /dev/kvm

Versi singkat

r tinggi dengan waktu pengguna mendekati seratus persen berarti CPU. %iowait tinggi berarti disk. cpu.stat yang menghitung throttle adalah kuota Anda sendiri. Steal tidak nol adalah kami, dan itu seharusnya tidak terjadi.

Siap saat Anda siap

Pilih kota. Pilih ukuran. Bayar dengan koin.

Tanpa formulir tentang siapa Anda, tanpa menunggu manusia untuk menyetujui, tanpa panggilan telepon untuk memverifikasi apa pun. Invoice dibersihkan dan kredensial masuk ke kotak masuk Anda.