Linux Ubuntu에서 평균 기묘함로드


9

지난 며칠 동안 저는 우리 인프라에서 발생하는 이상한 점을 이해하려고 노력했지만 그 사실을 파악할 수 없었기 때문에 몇 가지 힌트를주기 위해 여러분에게 의지하고 있습니다.

나는 약 2 시간마다 치명적인 규칙 성으로 발생하는 load_avg의 급증으로 Graphite에 주목했습니다. 정확히 2 시간은 아니지만 매우 규칙적입니다. Graphite에서 가져온 스크린 샷을 첨부하고 있습니다.

Averag로드-확대하려면 클릭

나는 이것을 조사하는 데 갇혔습니다.이 규칙은 나를 cron 작업이나 그와 비슷한 것으로 생각하게 만들었습니다. 그러나이 서버에서 cronjobs는 실행되지 않습니다. 실제로 이들은 Rackspace 클라우드에서 실행되는 VM입니다. 내가 찾고있는 것은 이러한 문제의 원인이 될 수 있음을 나타내는 것이며 일종의 추가 조사 방법입니다.

서버가 상당히 유휴 상태입니다. 이는 스테이징 환경이므로 트래픽이 거의 없거나로드가 없어야합니다. 이들은 모두 4 개의 가상 코어 VM입니다. 내가 확실히 알고있는 것은 약 10 초마다 많은 흑연 샘플을 수집한다는 것입니다. 그러나 그것이 부하의 원인이라면 다른 서버에서 2 시간마다 발생하는 것이 아니라 지속적으로 높을 것으로 기대합니다.

이것을 조사하는 방법에 대한 도움은 대단히 감사하겠습니다!


app01에 대한 sar의 일부 데이터는 위의 그림에서 첫 번째 파란색 스파이크입니다. 데이터에서 결론을 도출 할 수 없었습니다. 또한 30 분마다 (2 시간마다) 발생하는 바이트 쓰기 급증은 요리사 클라이언트가 30 분마다 실행하기 때문입니다. 이미 수행했지만 더 많은 데이터를 수집하려고 시도하지만 실제로 그로부터 결론을 이끌어 낼 수는 없습니다.

하중

09:55:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
10:05:01 PM         0       125      1.28      1.26      0.86         0
10:15:01 PM         0       125      0.71      1.08      0.98         0
10:25:01 PM         0       125      4.10      3.59      2.23         0
10:35:01 PM         0       125      0.43      0.94      1.46         3
10:45:01 PM         0       125      0.25      0.45      0.96         0
10:55:01 PM         0       125      0.15      0.27      0.63         0
11:05:01 PM         0       125      0.48      0.33      0.47         0
11:15:01 PM         0       125      0.07      0.28      0.40         0
11:25:01 PM         0       125      0.46      0.32      0.34         0
11:35:01 PM         2       130      0.38      0.47      0.42         0
11:45:01 PM         2       131      0.29      0.40      0.38         0
11:55:01 PM         2       131      0.47      0.53      0.46         0
11:59:01 PM         2       131      0.66      0.70      0.55         0
12:00:01 AM         2       131      0.81      0.74      0.57         0

CPU

09:55:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:05:01 PM     all      5.68      0.00      3.07      0.04      0.11     91.10
10:15:01 PM     all      5.01      0.00      1.70      0.01      0.07     93.21
10:25:01 PM     all      5.06      0.00      1.74      0.02      0.08     93.11
10:35:01 PM     all      5.74      0.00      2.95      0.06      0.13     91.12
10:45:01 PM     all      5.05      0.00      1.76      0.02      0.06     93.10
10:55:01 PM     all      5.02      0.00      1.73      0.02      0.09     93.13
11:05:01 PM     all      5.52      0.00      2.74      0.05      0.08     91.61
11:15:01 PM     all      4.98      0.00      1.76      0.01      0.08     93.17
11:25:01 PM     all      4.99      0.00      1.75      0.01      0.06     93.19
11:35:01 PM     all      5.45      0.00      2.70      0.04      0.05     91.76
11:45:01 PM     all      5.00      0.00      1.71      0.01      0.05     93.23
11:55:01 PM     all      5.02      0.00      1.72      0.01      0.06     93.19
11:59:01 PM     all      5.03      0.00      1.74      0.01      0.06     93.16
12:00:01 AM     all      4.91      0.00      1.68      0.01      0.08     93.33

IO

09:55:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
10:05:01 PM      8.88      0.15      8.72      1.21    422.38
10:15:01 PM      1.49      0.00      1.49      0.00     28.48
10:25:01 PM      1.54      0.00      1.54      0.03     29.61
10:35:01 PM      8.35      0.04      8.31      0.32    411.71
10:45:01 PM      1.58      0.00      1.58      0.00     30.04
10:55:01 PM      1.52      0.00      1.52      0.00     28.36
11:05:01 PM      8.32      0.01      8.31      0.08    410.30
11:15:01 PM      1.54      0.01      1.52      0.43     29.07
11:25:01 PM      1.47      0.00      1.47      0.00     28.39
11:35:01 PM      8.28      0.00      8.28      0.00    410.97
11:45:01 PM      1.49      0.00      1.49      0.00     28.35
11:55:01 PM      1.46      0.00      1.46      0.00     27.93
11:59:01 PM      1.35      0.00      1.35      0.00     26.83
12:00:01 AM      1.60      0.00      1.60      0.00     29.87

회로망:

10:25:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:35:01 PM      eth1      7.07      4.77      5.24      2.42      0.00      0.00      0.00
10:35:01 PM      eth0      2.30      1.99      0.24      0.51      0.00      0.00      0.00
10:45:01 PM        lo      8.35      8.35      2.18      2.18      0.00      0.00      0.00
10:45:01 PM      eth1      3.69      3.45      0.65      2.22      0.00      0.00      0.00
10:45:01 PM      eth0      1.50      1.33      0.15      0.36      0.00      0.00      0.00
10:55:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:55:01 PM      eth1      3.66      3.40      0.64      2.19      0.00      0.00      0.00
10:55:01 PM      eth0      0.79      0.87      0.08      0.29      0.00      0.00      0.00
11:05:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:05:01 PM      eth1      7.29      4.73      5.25      2.41      0.00      0.00      0.00
11:05:01 PM      eth0      0.82      0.89      0.09      0.29      0.00      0.00      0.00
11:15:01 PM        lo      8.34      8.34      2.18      2.18      0.00      0.00      0.00
11:15:01 PM      eth1      3.67      3.30      0.64      2.19      0.00      0.00      0.00
11:15:01 PM      eth0      1.27      1.21      0.11      0.34      0.00      0.00      0.00
11:25:01 PM        lo      8.32      8.32      2.18      2.18      0.00      0.00      0.00
11:25:01 PM      eth1      3.43      3.35      0.63      2.20      0.00      0.00      0.00
11:25:01 PM      eth0      1.13      1.09      0.10      0.32      0.00      0.00      0.00
11:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:35:01 PM      eth1      7.16      4.68      5.25      2.40      0.00      0.00      0.00
11:35:01 PM      eth0      1.15      1.12      0.11      0.32      0.00      0.00      0.00
11:45:01 PM        lo      8.37      8.37      2.18      2.18      0.00      0.00      0.00
11:45:01 PM      eth1      3.71      3.51      0.65      2.20      0.00      0.00      0.00
11:45:01 PM      eth0      0.75      0.86      0.08      0.29      0.00      0.00      0.00
11:55:01 PM        lo      8.30      8.30      2.18      2.18      0.00      0.00      0.00
11:55:01 PM      eth1      3.65      3.37      0.64      2.20      0.00      0.00      0.00
11:55:01 PM      eth0      0.74      0.84      0.08      0.28      0.00      0.00      0.00

cronjobs에 관심이있는 사람들을 위해. 다음은 서버에 설정된 모든 cronjob의 요약입니다 (app01을 선택했지만 동일한 cronjob이 설정된 다른 서버에서도 발생합니다)

$ ls -ltr /etc/cron*
-rw-r--r-- 1 root root  722 Apr  2  2012 /etc/crontab

/etc/cron.monthly:
total 0

/etc/cron.hourly:
total 0

/etc/cron.weekly:
total 8
-rwxr-xr-x 1 root root 730 Dec 31  2011 apt-xapian-index
-rwxr-xr-x 1 root root 907 Mar 31  2012 man-db

/etc/cron.daily:
total 68
-rwxr-xr-x 1 root root  2417 Jul  1  2011 popularity-contest
-rwxr-xr-x 1 root root   606 Aug 17  2011 mlocate
-rwxr-xr-x 1 root root   372 Oct  4  2011 logrotate
-rwxr-xr-x 1 root root   469 Dec 16  2011 sysstat
-rwxr-xr-x 1 root root   314 Mar 30  2012 aptitude
-rwxr-xr-x 1 root root   502 Mar 31  2012 bsdmainutils
-rwxr-xr-x 1 root root  1365 Mar 31  2012 man-db
-rwxr-xr-x 1 root root  2947 Apr  2  2012 standard
-rwxr-xr-x 1 root root   249 Apr  9  2012 passwd
-rwxr-xr-x 1 root root   219 Apr 10  2012 apport
-rwxr-xr-x 1 root root   256 Apr 12  2012 dpkg
-rwxr-xr-x 1 root root   214 Apr 20  2012 update-notifier-common
-rwxr-xr-x 1 root root 15399 Apr 20  2012 apt
-rwxr-xr-x 1 root root  1154 Jun  5  2012 ntp

/etc/cron.d:
total 4
-rw-r--r-- 1 root root 395 Jan  6 18:27 sysstat
$ sudo ls -ltr /var/spool/cron/crontabs 
total 0
$

보시다시피 HOURLY cronjobs는 없습니다. 매일 / 매주 만

나는 많은 통계 (vmstat, mpstat, iostat)를 모았습니다. 그러나 열심히 노력하고 있지만 VM 구성 요소의 오작동을 제안하는 리드를 볼 수 없습니다 ... 하이퍼 바이저에서 잠재적 인 문제에 기대기 시작했습니다. 통계를 살펴보십시오 . 요점은 "불쾌한"시간에 sar -q 출력으로 시작한 다음 vm, mp 및 iostats를 볼 수 있습니다 ....

기본적으로 그것은 여전히 ​​나에게 총 신비입니다 ...


추가 조사를 위해 공유 할 수있는 대화 형 데이터가 있습니까 (예 : 반복되는로드 급증시 'top', 'htop'및 'iotop'이 무엇입니까)? 또한 문제의 시간 동안 응용 프로그램 로그에서 이상한 동작을 보이는지 확인 했습니까? 또한 퍼블릭 클라우드 인프라에서 호스팅되지 않은 유사한 구성을 가진 호스트가 있습니까? 그렇다면 비슷한 동작을 보이는가?
esquireofoz

앱 로그 측면에서 아무 일도 일어나지 않습니다. 여기에 포함 된 유일한 로그 항목은 1 분마다 발생하는 모니터링 점검 (기본적으로 모니터링 시스템이 기본 사이트에 도달하고 결과 코드를보고 함)을 제외하고는 로그가 완전히 비어 있다는 것입니다. 또한 위에서 볼 수 있듯이 다양한 호스트가 있습니다. 이는 모든 호스트 (redis, 앱 서버, 요리사 서버 등)에서 발생합니다.
milosgajdos

psacct 를 사용하여 좁혀 보셨습니까 ?
HTTP500

당신은 규칙 성을 가정하지만, 당신이 보여주는 데이터는 규칙적으로 일어나는 스파이크를 보여주지 않습니다.. 1 백만 정도마다 "top -n 1"을 실행하여 파일에 보관하면 스파이크가 발생할 때 CPU와 경쟁하는 다른 프로세스를 확인할 수 있습니다. App1이 인터넷을 사용하는 앱인 경우 누군가가 해당 앱에 액세스하여 해당 동작을 강요하는 것일 수 있습니다. 일반 "에서 netstat -an"너무 로그인 (모든 분?) 추가
올리비에 Dulac

첨부 된 스크린 샷을 보셨습니까? 그것이 정기적으로 보이지 않는다면 나는 무엇을하는지 모른다. sar의 샘플링 기간을 늘려서 5 분마다 샘플링합니다. 그림의 규칙 성은 분명합니다. 매 2 시간마다 발생합니다. 네트워크 통계에 대한 위의 sar 출력에서 ​​확인할 수 있듯이 트래픽이 전혀없는 준비 환경입니다.
milosgajdos

답변:


3

흥미 롭군

먼저 sar 로깅 빈도를 늘릴 수 있습니다. 10 분이 아닌 1 분마다 기록하십시오. sysstat cronjob은 구성 가능합니다.

다음으로 다음 명령을 스크립트로 작성하십시오.

ps auxf > /tmp/ps.out
vmstat 1 50 > /tmp/vm.out
mpstat -P ALL 1 50 > /tmp/mp.out
iostat -xdk 1 50 > /tmp/io.out
cat /proc/meminfo > /tmp/meminfo.out

로드 평균이 수동으로 또는 cron을 통해 증가 할 때마다 반복 할 때마다이 데이터 세트를 수집하십시오. 적어도 하루 근무일의 데이터를 갖는 것이 좋습니다.

이제 서버가 유휴 상태이지만 여전히 일부 응용 프로그램이 실행 중이라는 것을 알고 있습니다. 그들은 무엇인가?

perf 또는 oprofile과 같은 일부 프로파일 링 도구를 실행할 수 있습니까?

서버 하드웨어 구성 요소가 변경 되었습니까? 펌웨어 업그레이드 나 소프트웨어 업그레이드와 같은 무해합니다.

하나의 질문입니다. 실행중인 스케줄러는 무엇입니까? 나는 그것이 cfq라고 생각합니다. 언제든지 당신이 그것을 noop로 바꿀 수 있습니다. 넣어 elevator=noop커널 명령 줄 매개 변수와 시스템을 재부팅하고 그것을 개선 여부를 확인.


스케줄러에 대한 작은 편집을 추가했습니다. 결과를 참조하십시오.
Soham Chakraborty

1

로그 탑 프로세스

발생이 매우 규칙적이므로 해당 기간 동안 최고 프로세스를 모니터하도록 cron 작업을 설정하십시오.

#app01
20-59 0/2 * * * root /usr/bin/top -b -n 1 | /usr/bin/head -n 15 >> /var/log/top.log

로 변경 20-59하면 *짝수 시간마다 전체 시간이 기록됩니다. 두 경우 모두 크론 작업이 분당 한 번 실행됩니다.

top.log 파일을 로그 회전에 추가하여 비활성화하는 것을 잊었을 때 모든 공간을 차지하지 않도록 할 수 있습니다.

로그 파일 확인

높은로드 기간에 로그 파일 항목 검색

다음과 같은로드 항목을 예로 들어 보겠습니다.

10:25:01 PM         0       125      4.10      3.59      2.23         0

하다

grep ' 22:2' /var/log/*
grep ' 22:2' /var/log/apache2/*

에 대한 모든 로그 항목이 표시됩니다 22:2x:xx. 다른 로그 디렉토리를 포함해야 할 수도 있습니다.

일 1 월 6 일 21:00:07 2013 : xvda w_await spike

xvda Chart-w_await 스파이크가 일요일 1 월 6 일 21:00:07에 있습니다. 여기에 이미지 설명을 입력하십시오


0

내가 확인해야 할 한 가지는 :

  • 동일한 패턴에 대한 vSphere 그래프, 같은 호스트의 다른 VM이 CPU를 사용하고 있음 VM).

편집 : 처음에는 얻지 못했습니다 :) 랙 공간에서 실행 중이므로 하이퍼 바이저에 대한 제어가 없지만 동일한 호스트의 다른 VM 에서이 패턴이 공통적인지 여부를 확인할 수 있는지 랙 공간에 문의하는 것이 좋습니다 .


1
랙 스페이스 클라우드가 광기의 원인이 된 것은 이번이 처음이 아닐 것입니다. 나는 그들이 하이퍼 바이저 서버를 모니터링하는 것을 의심합니다-VM의 오작동이라는 의미는 있지만 마지막 수단 인 랙 공간 지원으로 돌아 가기 전에 "내부"가능성을 배제하고 싶습니다.
milosgajdos

하이퍼 바이저 성능이 VM의 자체 겉보기 부하 평균에 영향을 줍니까? 이것은로드 평균이 어떻게 계산되는지에 대해 생각하게합니다. 녹색 / 절전 기능이 OS에 알려지지 않은 코어 수로 주기적으로 작업을 이동시키는 데 영향을 줄 수 있습니까? 또는 환경 입력과 같은 클럭 속도를 동적으로 변경하는 것은 어떻습니까?
trp

처리 평균 큐에 100 개의 작업이 있고 하이퍼 바이저가 1 초당 10 개의 작업을 실행하는 데 100 % 효율적이면 하이퍼 바이저의 경우 100 초의 작업을 실행하려면 10 초가 필요합니다. 50 %의 효율성 (CPU 오버 프로비저닝)은 동일한 양의 작업을 실행하는 데 20 초가 걸리므로로드가 증가합니다. 완전한 설명 : blog.scoutapp.com/articles/2009/07/31/…
Martino Dino
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.