Saya mencoba meningkatkan kinerja di server saya. Saya punya beberapa proses yang perlu jitter rendah (varian kurang dari 10ms).
Saya memiliki rata-rata beban maksimum 4 pada i7-920 (4 core fisik, 8 dengan HT). Ada sekitar 10 proses mulai dari 40% hingga 90% dari mode pengguna inti. Penggunaan sistem adalah total 3%. Total penggunaan CPU adalah 80% maks.
Apakah pengaturan kernel dari 100hz ke 1000hz akan meningkatkan jitter jika timer yang tidak berdetik dan resolusi tinggi sudah disetel?
Halaman ini tampaknya mengindikasikan masih melakukan sesuatu. https://lkml.org/lkml/2009/4/28/401
Bagaimana dengan mengubah dari sukarela (PREEMPT_VOLUNTARY) menjadi preemptible (PREEMPT)?
linux
linux-kernel
Bob
sumber
sumber
Jawaban:
Setiap waktu nyata tidak akan meningkatkan kinerja, itu akan membuat seluruh sistem berjalan lebih lancar tetapi sedikit lebih lambat, pada kenyataannya. Dengan kata lain, ini throughput vs. latency. Jika benar-benar yang Anda butuhkan, maka beberapa opsi:
nice
,schedtool
untuk menetapkan prioritas / kelas yang tepat sesuai dengan kebutuhan Andasumber
Jika low jitter penting bagi Anda, ya, Anda mungkin ingin menggunakan 1000Hz dan PREEMPT.
Jika proses-proses itu benar-benar sensitif terhadap waktu, Anda mungkin perlu tambalan / kernel berorientasi waktu nyata, atau setidaknya beberapa parameter penjadwalan tingkat proses, seperti rtprio.
Penggunaan khas adalah server audio, lihat misalnya saran dari Jackaudio
sumber
1) Jangan gunakan tanpa tanda centang, ini masih sangat eksperimental dan tidak direkomendasikan kepada siapa pun selain pengembang yang mengerjakannya, ini juga dimaksudkan untuk membantu menghemat daya.
2) Sistem preemtible sepenuhnya diharapkan dapat meningkatkan daya tanggap desktor, sedangkan preemptible sukarela adalah untuk penggunaan umum (campuran responsif dan throughput). Jika server Anda memiliki SMP (beberapa core), Anda mungkin harus menggunakan non-preemptible, karena sebagian besar pekerjaan akan dieksekusi pada core mereka dan tanpa interupsi, yang umumnya 1) membutuhkan waktu 2) cache sampah
3) 1000Hz adalah nilai desktop yang memperkenalkan overhead, tetapi memungkinkan untuk misalnya bermain game dan lainnya. 300 hz adalah nilai yang direkomendasikan untuk video (sehingga hal-hal dapat dijadwal ulang dan Anda masih tidak akan melewatkan frame), sementara 100Hz memberikan throughput terbaik (meskipun tidak diarahkan untuk hal-hal jaringan lowlatency).
Jika Anda ingin menjadi stabil karena mendapat (tanpa menggunakan patch RT), Anda harus pergi: kutu berkala (stabilitas) frekuensi-timer (stabilitas) non-preemptible (stabilitas) frekuensi (hingga Anda, 1000 untuk responsif terbaik dan latiency rendah, 100 untuk throughput terbaik tetapi resolusi 10 ms pada timer, mis. barang akan berjalan setidaknya 10 ms)
Semoga ini bisa membantu.
sumber