İşletim sistemi RHEL 6 (2.6.32). Bir çekirdek oluşturdum ve üzerinde yoğun bir iş parçacığı çalıştırıyorum./proc/{thread-id}/status, her saniyede bir gönüllü olmayan içerik anahtarını gösterir.Niçin gönüllü olmayan bir içerik anahtarı saniyede?
Söz konusu iş parçacığı bir SCHED_NORMAL iş parçacığıdır ve bunu değiştirmek istemiyorum.
Bu sayıda gönüllü olmayan bağlam anahtarını nasıl azaltabilirim? Bu,/proc/sys/kernel'deki herhangi bir zamanlama parametresine bağlıdır mu?
EDIT: Bazı yanıtlar alternatif yaklaşımlar önerir. Bu rotaya gitmeden önce, ilk, neden çalışma saatleri boyunca bile tam olarak gönüllü olmayan bir bağlam anahtarını alıyorum. Örneğin, bu CFS tarafından neden oldu mu? Eğer öyleyse, hangi parametreler ve nasıl?
EDIT2: Daha fazla açıklama - ilk soru I bir cevap istiyorum şunlardır: niçin tek anahtarı her yarım ya da iki saniye, diyelim ki, yerine saniyede bir gönüllü olmayan içerik anahtarı alıyorum?
Neden umursarsınız? Saniyede 100 bağlam düğmesi bile modern bir sistemde gürültüdür. –
Gecikmenin premium ve evreni bağlamda olduğu finansal uygulaması, (veya daha fazla) kayıp bir fırsat olabilir. Sistem ayar parametrelerinin, yalıtılmış çekirdeklerde yoğun işlem gerektiren işlemcilerin gönüllü olmayan bağlam değiştirme oranını belirlediğini anlamak isterim. –
Büyük olasılıkla bir kilit, normal disk G/Ç veya sayfa hatası üzerinde engelleme. –