EC2 örneğinde Ubuntu 12.04'te G / Ç bekleme nedeniyle yüksek yük


9

Ubuntu sunucusu 12.04 kullanıyorum, yük nedenini bulmakta sorun yaşıyorum, sunucunun yanıtlama süresinde geçen haftaki değişiklik gördüm

Linux Sorun Giderme, Bölüm I: Yüksek Yük okuduktan sonra

CPU ve RAM ile ilgili bir sorun yok gibi görünüyor ve bu yük aşağıdaki çıktıyı aldım komutunu kullanarak I / O bağlı yük ile ilişkili olabilirtop

Yük ve bellek kullanımı

İşte burada 97.6%wa, RAM ücretsizdir ve takas kullanılmaz.

Aşağıda iostatvar olduğunu eken komut çıkışı89% iowait

ubuntu@ip-my-sys-ubuntu:~$ iostat
Linux 3.2.0-58-virtual (ip-172-31-6-203)    02/19/2015  _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.05    0.01    3.64   89.50    3.76    0.03

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvdap1           69.91         3.81       964.37     978925  247942876

Ayrıca, iotopsabitleme aralığının% 99 G / Ç göstermesinden sonra, Disk I gözlemciyi şöyle yazar:1266 KB/s

resim açıklamasını buraya girin

ve

resim açıklamasını buraya girin

Kötü mü? tepki süresi azaldıkça. buna ne sebep oluyor?

Başkaları tarafından sorulan DÜZENLEMELER

iftop O / P

                  12.5kb             25.0kb            37.5kb             50.0kb       62.5kb
└─────────────────┴──────────────────┴─────────────────┴──────────────────┴──────────────────
ip-12-1-1-111.ap-southeast-1.  => 115.231.218.130                      0b   2.04kb   522b
                                 <=                                      0b   1.53kb   393b
ip-112-1-1-111.ap-southeast-1.  => 62.snat-111-91-22.hns.net.in      1.52kb  1.52kb  1.72kb
                                 <=                                    208b    208b    262b
ip-112-1-1-111.ap-southeast-1.  => static-mum-120.63.141.177.mtnl.      0b    480b    240b
                                 <=                                      0b    350b    175b
ip-112-1-1-111.ap-southeast-1.  => ip-112-11-1-1.ap-southeast-1.co      0b    118b    178b
                                 <=                                      0b    210b    292b
ip-112-1-1-111.ap-southeast-1.  => static-mum-120.63.194.119.mtnl.      0b      0b    240b
                                 <=                                      0b      0b    175b

TX:             cum:    123kB   peak:   3.72kb               rates:   1.67kb  2.02kb  1.78kb
RX:                    51.5kB           4.88kb                        1.19kb   989b    918b
TOTAL:                  174kB           8.60kb                        2.86kb  2.98kb  2.68kb

çıktı iostat -x -k 5 2

ubuntu@ip-111-11-1-111:~$ iostat -x -k 5 2
Linux 3.2.0-58-virtual (ip-111-11-1-111)        03/04/2015      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.75    0.01    4.74   22.72    4.06   64.71

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            0.00   263.80    0.42  109.42     7.28  1572.36    28.76     1.92   17.52   17.57   17.52   2.31  25.39

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.97    0.00    4.77   76.34    9.92    0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvdap1            0.00    35.69    0.00   85.88     0.00   438.93    10.22   137.55 1612.71    0.00 1612.71  11.11  95.42

@shodanshok 2 puan

resim açıklamasını buraya girin

iotop -a

resim açıklamasını buraya girin


1
0 disk okuma ve yazma ile% 99 IOwait iyi görünmüyor. Burada serverfault.com/questions/426181/… , G / Ç'nin sadece disk etkinliği ile değil, aynı zamanda ağ ile de ilişkili olabileceği belirtilmektedir. Örneğin iftop (ve diğer araçlar) ile kontrol edebilir misiniz?
Andrey Sapegin

@AndreySapegin iftop
Straw Hat

Ben AWS Örneği dağıtıldığı Disk ile ilgili bir sorun olduğunu düşünüyorum .. Geçerli örneğin AMI oluşturdu ve bunu kullanarak yeni Örnek başlattı .. Şimdi I / O
Straw Hat

@StrawHat, ilk seferinde diskte bir sorun olduğunu düşündüğünüz anlamına mı geliyor?
sbrattla

@sbrattla Hayır sanırım. Birkaç gün sonra aynı sorun ortaya çıktı
Straw Hat

Yanıtlar:


2

MySQL hizmetinizi diske dokunmaktan kaçınmak için ayarlayın ve postfix kuyruğunuzda dikkat edin, I / O duyarlı kuyruğuna çok sayıda e-posta alabilirsiniz (örneğin, ertelenmiş, rastgele okuma davranışı olan küçük itens).

E-posta sisteminiz spam gönderenler için aktarıcı olarak kullanıldı.

Postfix belgelerine göz atın ve MTA'nıza geçiş erişimini kısıtlayın.


mysql RDS örneğine taşımak çalışır?
Hasır Şapka

1
Sıralamak, ana sorun çünkü iops yeme bir postfix kuyruğu içine çok sayıda itens, qshape deferredkomut ile görebilirsiniz .
fgbreel

postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_maps=proxy:mysql:/etc/zpanel/configs/postfix/mysql-virtual_mailbox_limit_maps.cf
Hasır Şapka

postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1bu hataları aldıqshape deferred
Straw Hat

1
Postfix'inizin yanlış yapılandırılabileceğini düşünüyorum, ancak şu anda probleminiz için kaç e-postanız olduğunu bir göz atın /var/lib/postfix/deferred. Daha holdfazla araştırma veya temizleme için bunları sıraya alın.
fgbreel

1

Iostat ve iotop kullanılarak toplanan ek bilgilerden sonra düzenlenir Diskiniz
kullanılabilir IOPS bittiği için% 100 yüklenir: iostat başına sabit bir 50+ IOPS'ye (85 w / s - 35 birleştirilmiş w / s) sahip olursunuz. EC2 bulut sunucuları, özellikle ucuz olanları, sürekli IOPS (30-50 IOPS aralığında) üzerinde güçlü bir sınır oluşturur.

Yeni iotop çıktısına göre, hem mysql hem de sıçrama önemli miktarda IOPS tüketiyor. Bununla birlikte, iotop'un çıktısı tam görünmüyor ya da en azından kötü bir şekilde sıralanıyor. "İotop -a" sıralamasını bir kez IOPS ve başka bir kez disk yazma ile yeniden çalıştırabilir misiniz?

Orijinal cevap
Benim bahis: "sıçrama" işlemi Amazon tarafından sunulan sanal disk aygıtını boğucu birçok senkronize yazma yapıyor (bu arada, hangi profili kullanıyorsunuz? EC2 diskleri sürekli vs patlama I / O için oldukça katı kurallara sahiptir).

Her neyse, G / Ç bant genişliğinin neyin yaktığını belirlemek bazen biraz zor olabilir. Iotop çok iyi bir araç olsa da, bazen gerekli bilgileri vermez. Daha derine inmemiz lazım. Bu nedenle şu önerileri uygulayın:

  1. İlk olarak, işlenmekte olan G / Ç türünü ve etkilenen blok cihazı tanımlamamız gerekir.
    Aşağıdaki komutu çalıştırın: iostat -x -k 5 2. Lütfen her iki sonuç kümesini de bildirin.
  2. Ardından, G / Ç'yi bekleyen süreçleri tanımlamamız gerekir .
    Bunun için "üst" ne zaman kullanılabilir: başlatın, shift + f (F), ardından w tuşuna basın, sonra girin, sonra + r (R) tuşuna basın. İlk işlemler D veya D + durumundaki işlemler olacaktır (yani: disk / ağ bekleniyor). Lütfen listeyi geri bildirin.
  3. İşlemler için biriken I / O değerlerini göstermek için iotop'u kullanın . Yaklaşık bir dakika
    çalıştırın iotop -ave çıktıyı buraya yapıştırın.

iostat -x -k 5 2 ve ayrıca söz konusu
Straw Hat

1

Biraz geç, ama benzer bir makinede aynı sorunu vardı ve sorunun bir grup bozuk MySQL tabloları olduğunu öğrendim. Bu tabloların bazılarında çok fazla veri olduğundan, çok fazla G / Ç bekleme süresi üretti.

Bozuk verileri bulmak ve onarmak için bakın /var/log/mysql/error.logveya kullanın mysqlcheck.


0

Yukarıda belirtildiği gibi, EC2 örneğinizin bir IO kapağı ile gelmesi ya da belki de çok fazla IO akıllıca sunmayan bir Amazon EBS Standard biriminde desteklenmesi muhtemeldir. Bu sayfaya bir göz atın - Amazon'un sunduğu farklı cilt türlerini açıklar.

Yavaş bir hacme sahip olsanız bile, yine de oldukça hızlı yazabilmelisiniz, ancak yükünüz doğaya göre rastgele ise, göründüğü gibi (SQL şeyler), IOPS'u yükseltmek isteyebilirsiniz Kapasite, çünkü genellikle SQL performansı üst sınır koyar.

Yani - rakamlarınızdan, standart depolama birimini kullanarak IOPS'unuz tükenebilir gibi görünüyor. Daha hızlı depolama alanı satın almak o kadar pahalı değil. Göz at bu .


-3

Disk DMA dışı modda olabilir. Lütfen sürücünün DMA durumunu kontrol edin. (hdparm komutu)

Bu değilse, başka bir şey çok fazla kesintiye neden olabilir. İyi eski DOS döneminden hatırlayan var mı?


EC2 bir sanallaştırma platformudur ve sanal diskler kullanır. DMA burada suçlu değil. Her neyse, bir IRQ fırtınası disk üzerinde değil, CPU'da bir ücret yaratır.
shodanshok

Evet ve IRQ kesinti anlamına gelir.
Olağanüstü Zeka

EC2, bu tür bir sorundan mümkün olduğunca uzak olduğunu söyleyebilirim. G / Ç, örnek türüyle sınırlıdır - ve sonunda bol miktarda kapasiteye sahip gerçekten pahalı bir SAN çözümü ile sınırlıdır.
MrMajestyk
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.