2015-04-23 32 views
5

Ubuntu 14.04 sunucusunu (8 çekirdek, 16 GB RAM) bir PHP web sitesi, MySQL ve Redis barındırmak için kullanıyorum. PHP web ve MySQL'in trafiği çok düşük (MySQL: Saniye başına sorgular: 0.825). Redis saniyede 8011 komutlarını işler.Ubuntu 14.04 nc% 100 CPU kullanımı

8348 root  20 0 11224 764 624 R 100.0 0.0 2277:01 nc                                
8319 root  20 0 11224 760 624 R 100.0 0.0 2277:59 nc                               
8324 root  20 0 11224 764 624 R 100.0 0.0 2278:09 nc                               
8344 root  20 0 11224 760 624 R 100.0 0.0 2277:07 nc 

marcosilva verir nc: top üst kalır nc Fark ettim

Bugün

[email protected]:/home/user# strace -p 8348 
Process 8348 attached 
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}]) 
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}]) 
poll([{fd=3, events=POLLIN}, {fd=-1}], 2, 1000) = 1 ([{fd=3, revents=POLLERR}]) 
intentionally cutted N lines from output 

man poll üzerinde hızlı arama bana bilgi verir poll waits for one of a set of file descriptors to become ready to perform I/O.

nasıl dosya tanıtıcılarına ne olduğunu öğrenirim (dosya tanıtıcıları dosyalanır mı?) ve nc'yi% 100 CPU'yu tüketmek mi?

cevap

6

Yakın zamanda benzer bir sorun yaşadık. Udp üzerinden netcat aracılığıyla grafit'e bazı redis istatistiklerini gönderen bir cron işimiz var ve geçen hafta bir süredir grafit ana bilgisayarlarımızdan birini getirdikten sonra redis kutularındaki CPU kullanımının fırladığını fark ettik. 'Çıkın' kullanma

echo "{redis_metric}" | nc -w 1 -u ${graphite_host} 8125 

seçeneği (-q), 'zaman aşımı' aksine seçeneği: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752931

biz çalışmakta olan komut böyle bir şey oldu: O netcat bir hata gibi görünüyor (-w), bizim için sorunu düzeltmek için görünüyor:

echo "{redis_metric}" | nc -q 1 -u ${graphite_host} 8125 

Yardım edin!

+0

Kullanım durumumun tamamen aynı olduğunu düşünüyorum. Bu,% 100 CPU'yu kullanarak nc'nin nasıl düzeltileceğini tamamen yanıtlıyor. – Aivaras