Linux 6.5'te sunulacak yeniliklerden biri olan cachestat

Tux, Linux Çekirdeğinin maskotu

Linux çekirdeği, Linux işletim sistemlerinin (OS) omurgasıdır ve bir bilgisayarın donanımı ile süreçleri arasındaki temel arabirimdir.

Geçtiğimiz hafta Linux Çekirdeği 6.5'in bir sonraki sürümü üzerinde çalışmalara başlandı ve o zamandan beri bu yeni çekirdek sürümünde sunulacak en önemli değişikliklerden bazıları ortaya çıkmaya başladı .

Örneğin, çekirdek önyükleme sürelerini önemli ölçüde azaltmayı amaçlayan paralel CPU önyükleme desteği gibi çok sayıda iyileştirme ve değişiklik zaten entegre edildi . Ayrıca, AMD'deki değişikliklerle ilgili olarak, sistem askıya alma/devam ettirme sorunlarına titizlikle çözüm ürettikleri belirtiliyor. Buna ek olarak, dosya sistemleri, sanallaştırma ve daha fazlasındaki iyileştirmeler de vurgulanıyor.

Duyurulan değişikliklerden birini bu makalede ele alacağız; bu değişiklik, Linux 6.5 çekirdeğinden oluşturulan kod tabanına zaten dahil edilmiş ve yeni bir sistem çağrısı olan "cachestat" ın uygulanmasıyla entegre edilmiştir .

Bu yama serisi, belirtilen bayt aralığındaki bir dosya için önbellek sayfası istatistiklerini (önbelleğe alınmış sayfa sayısı, yeniden yazılmak üzere işaretlenmiş sayfalar, önbellekten çıkarılan sayfalar vb.) özetleyen yeni bir sistem çağrısı olan cachestat'ı sunmaktadır . Ayrıca, bazı tipik kullanım durumlarını test eden bir kendi kendini test paketi de içermektedir.

Cachestat hakkında

Cachestat, kullanıcı alanı programlarının çekirdek tarafındaki sayfa önbelleğinin daha ayrıntılı istatistiklerini sorgulamasına olanak tanıyan yeni bir sistem çağrısıdır . Bu nedenle, bellekte sayfa olup olmadığını belirlemek için kullanılan mevcut "mincore" sistem çağrısını genişletmeyi amaçlamaktadır. "Cachestat" çağrısı, daha ayrıntılı sayfa önbelleği istatistiklerini sorgulamaya olanak tanır ve daha yüksek ölçeklenebilirlik hedeflemektedir.

Şu anda sayfa önbelleğinin genellikle en büyük bellek tüketicisi olduğu ve bu nedenle onu yöneten çekirdek yöntemlerinin performans üzerinde önemli bir etkisi olduğu belirtiliyor . Bu nedenle, bu yöntemleri fadvise ve senkronizasyon ailesiyle desteklemek için zengin bir arayüz mevcuttur.

"cachestat()" sistem çağrısı, önbelleğe alınmış sayfa sayısı , değiştirilmiş sayfa sayısı, önbellekten çıkarılmış sayfa sayısı, yakın zamanda önbellekten çıkarılmış sayfa sayısı ve yeniden yazılmak üzere işaretlenmiş sayfa sayısı hakkında bilgi gönderir.

Dosyalar için sağlanan istatistikler, yalnızca soyut bir algoritmaya değil, aynı zamanda belirli bir sistemin belirli bir zamandaki özelliklerini de dikkate alarak, VFS üzerinden geçen G/Ç işleriyle ilgili daha doğru kararlar alınmasına olanak tanır .

Şu anda büyük önbellek sayfasının durumunu sorgulamanın iyi bir yolu yoktur. dosya kümeleri ve dizin ağaçları. mincore() var, ancak kötü ölçekleniyor:
çekirdek, kullanıcı alanının yazması gereken büyük miktarda bitmap verisi yazar. kullanıcı sayfa başına bilgiyi gerçekten umursamadığında ekleyin
Daha sonra. Kullanıcının ayrıca her dosyayı olduğu gibi mmmap yapması ve serbest bırakması gerekir. boyunca, bu da oldukça yavaş olabilir.

Aşağıda , cachestat() fonksiyonunun uygulamalarda kullanılabilecek bazı olası örnekleri verilmiştir :

  • DBMS'deki sorgu zamanlayıcı ÅŸunları yapabilecektir: sayfa önbelleÄŸindeki tablonun dizininin durumuna göre bir dizin taraması gerçekleÅŸtirmeye veya verileri doÄŸrudan tablodan okumaya karar verin.
  • Sayfa önbelleÄŸi doldurma ve G/Ç'nin parçalı ve yüke baÄŸlı olarak iÅŸlenmesi (örneÄŸin, kirli sayfalar/yeniden yazılmak üzere iÅŸaretlenmiÅŸ sayfalar), senkronizasyon sıklığının hafif yük altında çok sıktan, yük patlamaları sırasında patlamalıya deÄŸiÅŸtirilmesi.
  • Daha görsel sunum imkanı ve "du" yardımcı programının disk alanı kullanımını görüntülemenize izin vermesine benzer ÅŸekilde, büyük dosyalarda/dizinlerde bellek kullanım bilgilerinin uygun ÅŸekilde görüntülenmesi.
  • Performans sorunları için yavaÅŸ yazma iÅŸlemlerinde daha kolay sorun giderme ve hata ayıklama.

Son olarak, bu konu hakkında daha fazla bilgi edinmek isterseniz , ayrıntıları aşağıdaki bağlantıda bulabilirsiniz.


Google'da tercih edilen kaynak olarak ekleyin.