로드 평균의 무작위 점프 원인을 파악하는 방법은 무엇입니까?

로드 평균의 무작위 점프 원인을 파악하는 방법은 무엇입니까?

Debian GNU/Linux 전용 박스의 로드 평균에 문제가 있습니다. 둘 다(그 중 2개) MySQL + 맞춤형 게임 서버 소프트웨어(작은 "MMORPG"(전혀 거대하지 않음))를 실행하고 있습니다. CPU 사용량과 메모리 사용량은 괜찮습니다. CPU 사용량은 일반적으로 5% 미만입니다. RAM 사용량은 80~90% 정도까지 올라가지만 항상 여유 공간이 있거나 캐시되거나 버퍼링되어 있습니다. 스왑 사용량은 0입니다.

uptime, top 또는 이를 표시하는 기타 명령을 사용하여 부하를 모니터링하는 동안 무작위로 4 이상으로 점프합니다. 특히 두 상자 모두 "단지" 2개의 코어를 가지고 있다는 점을 고려하면 이는 분명히 문제입니다. 로드 평균이 갑자기 상승한 후 순조롭게 감소하기 시작하여 리소스 사용량이 일시적으로 급증했음을 시사합니다. CPU 사용량은 약 15분 동안 1초 업데이트 빈도로 상단을 쳐다볼 때마다 항상 0-5%, 최대 10%입니다.

나는 htop, vmstat, dstat 등과 같은 일부 도구를 사용해 보았지만 소용이 없었습니다. 관심 있는 분들을 위한 로그는 다음과 같습니다.

http://www.k-zodron.com/log.txt

시작 라인에서 발생하는 것과는 별개로 CPU 사용량은 거의 올라가지 않고 로드는 천문학적인 값으로 점프합니다. 저는 이 분야의 최고 전문가는 아니지만 디스크에 4KB를 쓰는 것도 I/O 병목 현상이 될 수 있는 것처럼 들리지 않습니다.

또한 MySQL Tuning Primer Tool을 실행했는데 모든 것이 정상이라고 보고되었습니다.

문제를 추적하고 해결하는 방법에 대한 아이디어가 있습니까? 감사해요!

편집하다

http://www.k-zodron.com/munin/

무닌 통계는 약 5~10분마다 업데이트됩니다.

답변1

mysql이 임시 테이블을 사용하고 있는 것이 아닐까요? io stat에 무닌 차트를 추가할 수 있나요..? 제공된 로그의 io 수치는 믿을 수 없을 정도로 낮은 것 같습니다.

귀하의 작업 세트는 무엇입니까? 데이터가 메모리에 편안하게 들어맞습니까? 당신은 때때로 SQL에 많은 쓰기를 합니까(로그에서 보면 – 전혀 없음)?

갑자기 동시 요청 수가 급증할 가능성이 있습니까[SQL 또는 사용자 정의 서버]? 무슨 고양이 /proc/net/ip_conntrack|wc -l이 말합니까? 로드 스파이크 중에 무엇을 표시합니까?

mysql 켜 줄래?느린 쿼리 로깅- 예를 들어 모든 것 > 1 또는 2초?

디스크가 서버에 직접 연결되어 있습니까? 아니면 iscsi/nfs입니까? 디스크[스마트]/레이드 상태의 상태를 확인할 수 있나요? 드라이브 중 하나에 오류가 발생했을 수도 있습니다. 또는 사용량이 적은 시간에 간단한 io 디스크 벤치마크를 실행하여 적절한 읽기/쓰기 속도를 얻을 수도 있습니다.

아니면 dmesg에 뭔가 추악한 내용이 표시되나요?

편집: netstat |wc -l이 로드와 상관관계가 있는지 확인하세요.

ps axms|wc -l이 로드와 상관관계가 있는지 확인하세요.

lsof |wc -l이 로드와 상관관계가 있는지 확인하세요.

[차트에 올릴 수 있도록 작은 무닌 플러그인을 해킹하는 것이 바람직합니다].

답변2

더 많은 측정항목이 필요합니다. 나는 CPU, 메모리, 네트워크, 디스크 I/O 등과 같은 다양한 값, 고전적인 값을 수집하기 위해 신경절을 사용합니다. 서비스 기반 측정항목: http 요청, mysql 쿼리 및 느린 쿼리 등 애플리케이션 기반 지표, 즉 게임에 연결된 사용자 수, 앱이 중요한 기능을 호출한 횟수 등이 있습니다.

해당 정보를 분석하고 최대 로드와 비교하면 시스템에서 무슨 일이 일어나고 있는지 더 잘 알 수 있습니다.

관련 정보