Sebagai pecandu kinerja web, saya selalu mencari cara untuk meningkatkan kinerja sistem dan mempercepat aplikasi web. Dan hari ini saya akan berbagi dengan Anda keajaiban penskalaan frekuensi CPU, dan panduan praktis cara menonaktifkan penskalaan frekuensi CPU untuk menjalankan sistem Anda dengan kecepatan CPU penuh.
Sebelum masuk ke cara menonaktifkan penskalaan frekuensi CPU, mari kita pahami apa itu pembatasan CPU.
Apa itu penskalaan frekuensi CPU?
Sejak Kernel v. 2.6.18 (CentOS) dan 2.6.32 (Ubuntu), fitur baru yang disebut Dynamic CPU frequency scaling (alias CPU throttling) diperkenalkan.
Scaling frekuensi CPU ini memungkinkan prosesor berjalan dalam frekuensi yang lebih sedikit dari frekuensi maksimum yang diizinkan. Ini dilakukan hanya untuk menghemat konsumsi daya, tetapi kelemahannya adalah Anda tidak dapat menggunakan kecepatan CPU secara penuh.
Bagaimana cara mengetahui kecepatan CPU saya berjalan?
Jalankan perintah ini, seperti yang Anda lihat di bawah ini:
grep -E '^model name|^cpu MHz' /proc/cpuinfo
Outputnya harus seperti ini:
[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.000
Seperti yang Anda lihat, kecepatan CPU asli adalah @ 3,40 Ghz, namun kecepatan CPU yang berjalan dalam Mhz adalah sekitar 1600. CPU berjalan dengan setengah kecepatan totalnya.
Ini juga dapat dicapai dengan paket CPU keren yang disebut cpufrequtils / cpupoweruitls
Instal cpupowerutils di CentOS/Debian
yum install cpupowerutils -y
Instal cpupowerutils di Ubuntu/Debian
apt-get install cpufrequtils
Sekarang jalankan perintah ini, dan itu akan menampilkan informasi tentang kecepatan CPU minimum dan maksimum Anda, antara lain:
cpupower frequency-info
Output yang diharapkan harus serupa dengan ini:
[[email protected]:~]cpupower frequency-info analyzing CPU 0: driver: intel_pstate CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: Cannot determine or is not supported. hardware limits: 1.60 GHz - 3.80 GHz available cpufreq governors: performance powersave current policy: frequency should be within 1.60 GHz and 3.80 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency: 1.60 GHz (asserted by call to hardware) boost state support: Supported: yes Active: yes 3600 MHz max turbo 4 active cores 3700 MHz max turbo 3 active cores 3800 MHz max turbo 2 active cores 3800 MHz max turbo 1 active cores
Nonaktifkan penskalaan frekuensi CPU di Linux (RedHat dan Ubuntu)
Mari kita lihat cara menonaktifkan penskalaan frekuensi CPU pada platform Linux paling populer.
Untuk pengguna CentOS / RHEL
Mari kita ubah frekuensi cpu ke kecepatan maksimum yang tersedia dengan perintah berikut:
cpupower frequency-set -g performance
Mari kita lihat apakah ada perubahan pada kecepatan CPU berjalan lagi:
[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 3497.218 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 3392.296 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 3397.742 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 2283.578 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 3457.640 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 2133.234 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 1600.257 model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz cpu MHz : 3740.265 [[email protected]:~]
Seperti yang Anda lihat pada perintah sebelumnya, sekarang CPU berjalan lebih tinggi dari sebelumnya saat dibutuhkan.
Cara lain untuk melakukannya secara manual adalah menjalankan perintah ini yang akan mengubah gubernur CPU dari mode 'ondemand' ke mode 'kinerja' untuk semua CPU Anda:
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done
Jika sistem Anda menjalankan daemon apa pun yang mengontrol kecepatan CPU, hentikan saja agar sistem Anda berjalan dengan kecepatan CPU penuh:cpuspeed, cpufreqd, atau powerd.
service cpuspeed stop
Untuk pengguna Ubuntu / Debian
Edit file ini, dan jika tidak ada, buat saja:
nano -w /etc/default/cpufrequtils
Tambahkan baris berikut di dalam:
GOVERNOR="performance"
Simpan dengan menekan CTRL + X, lalu tekan Y.
Langkah selanjutnya:nonaktifkan daemon ondemand untuk menghindari kehilangan perubahan Anda setelah Anda me-reboot server, jalankan perintah ini:
update-rc.d ondemand disable
Itu saja. Periksa kembali pengaturan Anda dengan perintah ini:
cpufreq-info
Kesimpulan
Menjalankan CPU Anda dengan kecepatan penuh benar-benar dapat meningkatkan kinerja aplikasi Anda. Sebagian besar CPU modern sudah memiliki sistem pendingin cpu yang sangat bagus, jadi ini seharusnya tidak menjadi masalah, namun pastikan ini tidak menyebabkan konsumsi daya ekstra yang besar atau CPU terlalu panas. Seperti yang Anda lihat, Anda dapat menonaktifkan penskalaan frekuensi CPU dengan mudah untuk distribusi berbasis RedHat dan Debian. Beri tahu kami jika Anda memiliki masalah atau pertanyaan tentang ini.
Bacaan lebih lanjut:
- Penskalaan frekuensi CPU di Linux dengan cpufreq
- Dokumen Penskalaan Frekuensi CPU ArchLinux
- Dokumentasi Gubernur RedHat CPUFreq