1 saniye) uygulama tezgahlarına neden olup olmadığını nasıl anlarsınız?'/> 1 saniye) uygulama tezgahlarına neden olup olmadığını nasıl anlarsınız?'/> 1 saniye) uygulama tezgahlarına neden olup olmadığını nasıl anlarsınız?'/> Linux disk IO'nun aşırı (> 1 saniye) uygulama tezgahlarına neden olup olmadığını nasıl anlarsınız? | m24sniperweaponsystem.com

Soru Linux disk IO'nun aşırı (> 1 saniye) uygulama tezgahlarına neden olup olmadığını nasıl anlarsınız?


Yaklaşık bir düzine dosyaya büyük hacimli (yüzlerce MB) sürekli çıktı (düz metin akışı) gerçekleştiren bir Java uygulamasına sahibim ext3 SAN dosya sistemi. Bazen, bu uygulama aynı anda birkaç saniye duraklar. İlgili bir şeyden şüpheleniyorum ext3 vsfs (Veritas Filesystem) işlevselliği (ve / veya OS ile nasıl etkileştiği) suçludur.

Bu teoriyi onaylamak veya reddetmek için hangi adımları atabilirim? Farkındayım iostat ve /proc/diskstats başlangıç ​​noktaları olarak.

Günlük kaydını vurgulamak ve "tezgahları" vurgulamak için gözden geçirilmiş başlık

Biraz googling yaptım ve gözlemlediğim davranışları betimleyen en az bir makale buldum: Ext3 gecikme problemini çözme

ek bilgi

  • Red Hat Enterprise Linux Server sürüm 5.3 (Tikanga)
  • Çekirdek: 2.6.18-194.32.1.el5
  • Birincil uygulama diski fiber-kanal SAN'dir: lspci | grep -i fibre >> 14:00.0 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)
  • Bilgi monte: type vxfs (rw,tmplog,largefiles,mincache=tmpcache,ioerror=mwdisable) 0 0
  • cat /sys/block/VxVM123456/queue/scheduler >> noop anticipatory [deadline] cfq

4
2017-11-09 23:36


Menşei


Bu iostat ve diskstatların iyiliğinin bir kısmına nasıl yazılır? Belki hangi donanımı kullanıyorsunuz? Bu sanal bir makine mi? Fiziksel makine? Belirsiz sorular muğlak ve yararsız cevaplar alırlar. - Magellan
@Adrian Realz için ... Temel bilgiler verilmediğinden, burada tüm yönetim kurulu üzerinde cevaplarımız var. - ewwhite
Daha fazla bilgi Mon veya Salı sağlayacaktır. - noahz
çöp toplama kararını verdin mi? Birkaç saniyelik tezgahlar, GC istismarının sık görülen bir belirtisidir. - Javier
Açıkçası, gecikmeye neden olabilecek birçok şey var. Burada sadece ext3 dosya sistemi teşhisine odaklanıyorum. - noahz


Cevaplar:


Tahminimce, bir süredir disk G / Ç kapasitesini tutan başka bir işlem var. iotop Yeterli bir çekirdeğe sahipseniz, onu belirlemenize yardımcı olabilir.

Eğer durum buysa, dosya sistemi ile ilgili değil, dergiler hakkında daha az. Çakışan uygulamalar arasında hakemlik yapmak G / Ç zamanlayıcısıdır. Kolay bir test: Geçerli zamanlayıcıyı kontrol edin ve farklı bir tane deneyin. Yeniden başlatmadan, anında yapılabilir. Örneğin, ilk diski kontrol etmek için masaüstümde/dev/sda):

cat /sys/block/sda/queue/scheduler
=>  noop deadline [cfq]

Masaüstleri için iyi bir seçenek olan CFQ'yu kullandığını, ancak sunucular için çok fazla olmadığını gösteriyor. 'Son tarih' daha iyi ayarlanmış:

echo 'deadline' > /sys/block/sda/queue/scheduler
cat /sys/block/sda/queue/scheduler
=>  noop [deadline] cfq

ve geliştirip geliştirmediğini görmek için birkaç saat bekleyin. Öyleyse, başlangıç ​​komut dosyalarında kalıcı olarak ayarlayın (dağıtıma göre değişir)


4
2017-11-10 18:11



Doğru ve dağıtım, sürüm, donanım detayları eksik ... Ancak, biz yap Bu bir SAN olduğunu biliyorum, bu yüzden blok cihaz farklı olacak. Geçerli redhat / CentOS ise, G / Ç zamanlayıcısı ayarlarının üstesinden gelmenin daha temiz bir yolu vardır. - ewwhite
Evet, tipik olarak SAN cihazlarının kendi programlayıcıları vardır ve genellikle iki karıştırma işlemi, en uygun şekilde ciddi değildir. Bazen en iyisi noop. - Javier
Buradaki durumun böyle olup olmadığını bilmiyorsun ... ' - ewwhite
@ewwhite kesinlikle hayır; ama bu, üretimi test etmek için kolay ve risksiz olan birkaç şeyden biri. Günü kurtardığında birkaç durum gördüm, ayrıca algılanamaz bir fark yaratmadığı durumlar. - Javier
ama ne id yap Dergiyi yazmanın tezgâhlara neden olmadığını biliyor. En kötüsü, her yazımı biraz daha uzun sürer (deneyimimde ölçülebilir olmak için çok az). Genellikle dosya sisteminde veya blok cihazında önbellekle tamamen maskelenir. (özellikle SAN bağlantılı cihazlarda) - Javier


İyi bir test, ext3 fs'yi ext2'ye monte etmek ve ardından uygulamanın performansını izlemek olacaktır.


4
2017-11-10 00:05



Evet ... yapamazsın. Üretim ortamı. Sunucunun yerinde giderilmesi gerekiyor. - noahz
Şey dev ortamınızda test edin. - EEAA
/ Proc / diskstat'larda bir statü veya benzer şekilde, kayıt işlemlerinde harcanan süreyi (ya da benzer bir şeyi) gösterebilecek bir şeyi umuyordu. Öyleyse eğer bu testi çalıştırdığımda, neler olduğunu anlayabiliyorum. - noahz
Bu zamanın yayıldığını ya da yoğunlaştığını söylemeyeceğinden beri yardımcı olmaz. Test etmek için bir test ortamına ihtiyacınız var. - David Schwartz
Bu soruyu ilk yayınladığımda daha fazla bilgi sahibi olmadığım için özür dilerim. Dosya sistemi aslında vxfs (Veritas Birim Yöneticisi). - noahz


Cevap "Evet" (günlük kaydı) HER ZAMAN latansı :-) ekler

Bunun ne kadar önemli olduğu sorusu, sadece doğrudan bir testle cevaplanabilir, ancak genellikle, her bir (günlük) işlemin, günlük kaydı olmadan mümkün olduğunca iki kat daha uzun sürdüğünü varsayar.

Yorumlarınızda bahsettiğinizden beri başka cevap üretim ortamınızda doğrudan testi yapamayacağınız (ve muhtemelen bir dev / test ortamının kullanamayacağı) başka bir seçeneğiniz var: Disk istatistiklerine bakın ve ne kadar zaman harcadığınızı görün günlük aygıtı.
Ne yazık ki bu sadece günlük cihazınızın ayrık olup olmadığını ve "ana" diskten ayrı olarak enstrümanlanabilir.


İkinci kez bugün bir McKusick videosu takılıyorum, ama eğer sen bu video Bir günlük dosya sisteminin yapması gereken bazı işlerin (ve söz konusu performans etkisinin) büyük bir tartışması var.
Sizinle ve özel sorunuzla doğrudan ilgili / alakalı değil, dosya sistemleri ve günlük kaydı hakkında genel bir arka plan.


4
2017-11-10 01:26



Artımlı yazımların yanı sıra, birkaç saniye süren duraklamalara ne dersiniz? Bunun olup olmadığını ve / veya neden olduğunu anlamanın herhangi bir yolu var mı? - noahz
@noahz sonsuz şeylerin bir listesini soruyorsunuz (Ben size makul bir tahminde bulunmak için yeterli olasılıkları ortadan kaldıramıyorum - disk darboğazları, günlük kaydı, JVM'de bir şeyler, Java kodunda bir şey, vb.) - İşlemi ve / veya çekirdeğe bir hata ayıklayıcısını (dtrace gibi) ekleyebilir ve boğulduğunda neler olduğunu izleyebilirsiniz, ancak bu konuyla ilgili ... - voretaq7
günlüğe alma, (en az) gecikmeyi ekler, ancak 'durak' değildir. - Javier
Günlük kaydını vurgulamak ve "tezgahları" vurgulamak için başlık değiştirildi. - noahz


Evet, günlük kaydı gecikmeye neden olur. Ama bu denklemin küçük bir parçası. Buna bakmak için 5. veya 6. maddeyi düşünürdüm ... Bununla birlikte, bu yeterli yeterli bilgiyi içermeyen sistem depolama soruları eğiliminde bir başkadır.

  • Ne tür bir sunucu donanımı kullanıyorsunuz? (marka ve model)
  • Lütfen depolama ayarlarını (RAID denetleyici, önbellek yapılandırması, sayı ve disk düzenlenmesi) açıklayın.
  • Hangi işletim sistemini kullanıyorsunuz? Dağıtım ve çekirdek sürümleri yardımcı olacaktır.

Bu bilgiyi neden soruyorum?

Donanım kurulumunuz ve RAID seviyeniz, gözlemlediğiniz performans üzerinde BÜYÜK bir etkiye sahip olabilir. Donanım üzerinde önbellek okuma ve yazma RAID denetleyicileri, iş yükü ve G / Ç kalıplarınızı karşılamak için ayarlanabilir ve ayarlanmalıdır. İşletim sistemi, sizin için yararlı olabilecek araç önerilerini ve ayarlama tekniklerini etkilediği için önemlidir. Farklı dağılımlar ve çekirdekler farklı varsayılan ayarlara sahiptir, bu nedenle performans özellikleri aralarında farklılık gösterir.

Bu durumda, bir dizi olasılık var:

  • RAID diziniz iş yüküne yetişemeyebilir (yeterli sayıda iş mili değil).
  • Ya da önbellek yazma.
  • Parçalanma sorunlarınız olabilir (dosya sistemi ne kadar dolu?).
  • Bir uyumsuz RAID seviyesi Bu, gerekli performans özelliklerine terstir.
  • RAID denetleyicinizin ayarlanması gerekebilir.
  • Sisteminizin I / O zamanlayıcısını değiştirmeniz ve çalıştırmanız gerekebilir. bazı blok cihaz ayarları.
  • Daha performans için optimize edilmiş bir dosya sistemini düşünebilirsiniz. XFS'in.
  • Dergiyi bırakabilir ve dosya sisteminizi ext2 olarak kaldırabilirsiniz. Bu anında yapılabilir.
  • Otobüs zaman aşımlarını deneyimleyen ucuz SATA diskleriniz olabilir.

Ama olduğu gibi, devam etmek için yeterli bilgiye sahip değiliz.


3
2017-11-10 05:26



Hmm ... bu SAN. Tüm bu bilgileri almak zaman alacaktır. Hazır değil. - noahz
Bunun bir SAN üzerinde koşma olasılığını bile düşünmemiştim. Bir var değiştirebileceğiniz birkaç şeyişletim sisteminizin dağıtımına ve sürümüne bağlı olarak. Bu bilgiyi alabilir misin? - ewwhite


Ext3 dosya sistemiyle Redhat 4'te bu sorunu yaşadım: Birçok ext3 dosya sistemi üzerinde yazıyor => anoter ext3 FS yazma büyük bekle

Erişim zaman güncellemesi ile, okuma erişimi de askıya alınabilir => geçici çözüm: mount -o noatime

Saygılarımızla, Jerome D.


1
2017-11-10 17:31





Uzaklaşmaya çalışabilirsin /proc/diskstats için /proc/meminfo: Belki geri yazma tamponunuz, yıkama gerektirdiği için büyür. Geri yazma ("kirli") tamponlar yazılabildiklerinden daha hızlı doldurulduğunda bir durumumuz vardı. Daha sonra Linux daha fazla iş parçacığı başlattı ve işleri daha da kötüleştirdi. İşlemden önce kirli tamponların izin verilen oranını sınırlamak problem için biraz yardımcı oldu. Sahip olduğum diğer ipucu ise korelasyon: I / O’nun yavaş olduğu zamanları yakalayın ve ardından aynı anda başka neler olduğunu karşılaştırın. Örneğin bunu deneyebilirsiniz:

while sleep 2
do
    (date; cat /proc/meminfo) >> /tmp/your_logfile
done

Uygulamanızın yavaş olduğu zamanları karşılaştırın.


1
2018-05-09 12:58





Bu çoğu insan için bir çözüm olmasa da, daha önce de yaşadığım bu özel konudan bahsederdim.

WD Green disklerini Linux Software RAID ile kullanırken daha önce önemli I / O sorunları yaşadım. Sorununuz buysa, WD Red sürücüleri kullanmanız önerilir. Yeşiller'i sürücülerinizin yaşı olarak kullanırsanız, diziniz büyük olasılıkla rakipsiz bir şekilde yavaşlar; çünkü bu sürücüler sürekli olarak enerji tasarrufu yapmak için kendiliğinden kapanmaya çalışırlar ve bu da HUGE I / O gecikme gecikmelerine neden olur. Sonunda bu sürücüleri kullanacaksınız çünkü bunlar, S.M.A.R.T.


-1
2017-11-13 20:31