FSAB'de artan “taahhüt” avantajları / dezavantajları


14

Geçmişte pek çok belirsiz sistem optimizasyonu yaptım, ancak powertopUSB portlarımı otomatik olarak askıya almam gerektiğini söyledikten sonra çoğundan kurtuldum , bu da onları ebedi bir uykuya zorladı ve daha yüksek bir swappiness avantajlarını fark ettikten sonra .

Ama bugün, bakarken, / ve / home için bir /etc/fstabseçenek belirlediğimi fark ettim . Bunun dizüstü bilgisayar için bir optimizasyon olduğunu hatırlıyorum, diske yazma miktarını azaltmak, böylece pil tasarrufu. Ama sonra bunun veri kaybına neden olabileceğinden endişe ettim (bazen pilimin bağlantısı kesilir ve ardından önyüklemede bana birkaç yetim inode hakkında bilgi verir).commit=60fsck

Bu seçenek için bir açıklama ararken, aşağıdaki açıklamalara geldim (ikincisi önceki anlayışımla çelişiyor gibi görünüyor):

$ man mount | awk '/commit=/,/^$/'
commit=nrsec
    Sync all data and metadata every nrsec seconds. The default value is 5 seconds.
    Zero means default.

https://forums.gentoo.org/viewtopic-p-4088752.html

commit = 60, fazla okumaların yazmalarına "anında" (varsayılan 5 saniye) öncelik verilmesini durdurur ve yazıları birkaç saniye sonra önbelleğe alır. Bu, kullanıcının okumaların öncelik almasını istediği ağır okumalar ve yazmaların birlikte karıştırılması durumunda iyidir, böylece işlemcilerin okumaya devam etmeden önce bitmesini beklerken duraklatmak yerine meşgul tutulabilir.

Gördüğüm gerçek dünyadaki bir örnek, Gnome açılır menüsünün görünmesi için birkaç saniye beklemektedir, görünüşe göre bir sebep yok. Bunun nedeni, diskin yazmakla meşgul olmasıydı, bu nedenle CPU, menüyü gösterebilmek için diskteki tüm verileri alabilmek için yazmanın bitmesini beklemek zorunda kaldı.

Taahhüt gerçekten ne yapar ? Bunu artırmanın gerçekten avantajları var mı (yanıt verme ve güç tasarrufu gibi)? Aslında veri kaybına neden olabilir mi?

Yanıtlar:


12

Taahhüt gerçekten ne yapar ?

En iyi açıklamalardan birinin burada allquixotic tarafından verildiğini düşünüyorum .

Bunu artırmanın gerçekten avantajları var mı (yanıt verme ve güç tasarrufu gibi)? Aslında veri kaybına neden olabilir mi?

Gereğince ext4'ün resmi belgeler :

Ext4'ün tüm verilerini ve meta verilerini her 'nrsec' saniyede bir senkronize etmesi söylenebilir. Varsayılan değer 5 saniyedir. Bu , gücünüzü kaybederseniz, en son 5 saniyelik işinizi kaybedeceğiniz anlamına gelir (günlük kaydı sayesinde dosya sisteminiz zarar görmez). Bu varsayılan değer (veya herhangi bir düşük değer) performansa zarar verir , ancak veri güvenliği için iyidir . 0 olarak ayarlamak, varsayılan değerde bırakmakla aynı etkiye sahip olacaktır (5 saniye). Çok büyük değerlere ayarlamak performansı artıracaktır .

Artan commitdeğer , yazılımın fsync () işlevini çağırabildiği ve verilerini diske yazdığı için, çoğu zaman bu işin son N saniyesini (N = kesinti aralığı) kaybedebileceğiniz anlamına gelir . taahhüt ayarı. "Her şeyi diske en azından bu kadar sık ​​yaz" diye bakabilirsiniz . 1
Öte yandan, daha az yazma (ssd kullanıcıları arasında oldukça popüler hale getiren) ve daha iyi performans (birden fazla yazma tek bir daha büyük yazmada birleştirilir, işlem süresi içinde önceki yazmalarda yapılan güncellemeler iptal edilir) anlamına gelir.
Güç tasarruflarına gelince, bu sayfaya göre , günümüzde artan commitdeğerin güç tasarrufu yapmadığı ortaya çıkıyor .


1
Bence bazı güç tasarrufu nedeniyle uzatılmış + gecikmeli tahsis HDD daha iyi optimize edebilirsiniz. Ama muhtemelen önemli değil.
peterh - Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.