Kita akan meluncurkan tuned (dan numad) pada ~ 1000 server, sebagian besar dari mereka adalah server VMware baik pada penyimpanan NetApp atau 3Par.
Menurut dokumentasi RedHats kita harus memilih virtual-guest
profil. Apa yang dilakukannya dapat dilihat di sini: tuned.conf
Kami mengubah penjadwal IO ke NOOP karena VMware dan NetApp / 3Par harus melakukan penjadwalan yang cukup bagi kami.
Namun, setelah menyelidiki sedikit, saya tidak yakin mengapa mereka meningkat vm.dirty_ratio
dan kernel.sched_min_granularity_ns
.
Sejauh yang saya pahami peningkatan meningkat vm.dirty_ratio
menjadi 40% akan berarti bahwa untuk server dengan ram 20GB, 8GB dapat menjadi kotor pada waktu tertentu, kecuali jika vm.dirty_writeback_centisecs
terkena terlebih dahulu. Dan sementara menyiram 8GB ini semua IO untuk aplikasi akan diblokir sampai halaman kotor dibebaskan.
Meningkatkan dirty_ratio mungkin akan berarti kinerja penulisan yang lebih tinggi di puncak karena kita sekarang memiliki cache yang lebih besar, tetapi sekali lagi ketika cache mengisi IO akan diblokir untuk waktu yang jauh lebih lama (Beberapa detik).
Yang lain adalah mengapa mereka meningkatkan sched_min_granularity_ns
. Jika saya memahaminya dengan benar meningkatkan nilai ini akan mengurangi jumlah irisan waktu per epoch ( sched_latency_ns
) yang berarti bahwa menjalankan tugas akan mendapatkan lebih banyak waktu untuk menyelesaikan pekerjaan mereka. Saya bisa mengerti ini menjadi hal yang sangat baik untuk aplikasi dengan sangat sedikit utas, tetapi untuk misalnya. apache atau proses lain dengan banyak utas bukankah ini tidak produktif?