며칠마다 다른 시간에 시스템이 미친 듯이 교체되기 시작하고 로드가 너무 높아져 시스템이 매우 느리게 응답합니다. 어떤 때는 복구하는 데 4시간을 기다렸고 어떤 때는 Magic SysRq 키를 사용하여 재부팅하거나 종료했습니다(그렇습니다. 커널은 여전히 반응하고 반응했습니다). 스왑 공간과 운영 체제는 미러링된 SSD 한 쌍에 있습니다.
시스템이 이상해지면 kswapd
CPU 사용량이 항상 가장 높고 최상위에 가까운 나머지 작업이 변경됩니다. 이것은 시스템이 이상해졌을 때의 출력 예입니다
. top
시스템의 메모리 사용량은 약 4.5GB가 정상입니다.
때때로캐시 삭제문제를 풀다. 다른 때에는 그다지 많지 않습니다. 때로는 새 프로세스를 중지하면 시스템 복원 작업이 시작되지만 때로는 중지 cron
(몇 가지 일반 프로세스가 예약되어 있음) 또는 nagios
(일반 플러그인 트리거) 와 같이 작동하지 않는 경우도 있습니다.
가끔 OOM 킬러가 일부 메모리를 복구하기 위해 일부 프로세스를 종료하는 경우가 있지만 이것이 항상 시스템을 수정하는 것은 아닙니다.
시스템의 로드는 오랫동안 실제로 변경되지 않았는데 갑자기 이런 일이 발생하기 시작합니다. 커널 4.16.*으로 업그레이드했을 때 시작된 줄 알았는데, 커널 4.15.*로 되돌렸는데도 해결되지 않았습니다.
나는 시스템이 언제 이상해지기 시작하는지 명확하게 볼 수 있는 다양한 정보를 주기적으로 수집하는 스크립트를 작성했습니다. 현재로서는 다음에 시스템에 문제가 있을 때 제공해야 할 데이터가 없습니다.
내가 작성한 스크립트에 기록된 로딩 프로세스는 다음과 같습니다. 진행 내역 로드
"고부하 문제를 해결해 보세요"라는 메시지가 나타나면 다음을 사용하여 캐시를 삭제하려고 하는 것입니다.sync;echo 3 > /proc/sys/vm/drop_caches
내가 무엇을 봐야할지 아이디어가 있습니까? 무슨 일이 일어나고 있는지 알아내는 데 도움이 필요해요. 감사해요
답변1
시스템의 여러 지점에서 메모리가 부족해진 것 같습니다. OOM 킬러 이벤트와 스왑 사용량을 보면 이를 알 수 있습니다.
그러나 16GB RAM 미만에서 MythTV+MySQL+Nagios+Apache, pserver, CVS 및 신은 동일한 서버에서 다른 것( top
출력에서 추측한 것임)을 실행하는 것이 너무 많을 수 있다는 것을 알고 있습니다. RAM과 I/O에서.
우리는 또한 Nagios에 얼마나 많은 이벤트가 있고 어떻게 예정되어 있는지 모릅니다. 시간이 너무 짧고 이벤트가 너무 많아 완전히 작동하기도 전에 발사되기 시작하고 아무리 강력하더라도 모든 기계를 먹어치울 것입니다. 기계가 부족해지기 시작하면 완전히 작동할 시간이 없을 수 있으며 갑자기 수많은 Nagios 검사가 진행됩니다. 결론은 당신이 cronjob을 가지고 있다고 말한 것입니다 ...
더 많은 리소스를 확보하고 이러한 모든 서비스가 포함된 몇 대의 머신 및/또는 가상 머신을 실행하는 것을 고려해 보겠습니다. 소비자 컴퓨터도 그렇게 많은 I/O를 처리할 수 없으며, 어느 시점에서 심각한 작업을 수행하는 경우 서버급으로 전환해야 합니다.
분명히 어떤 시점에서는 사용 가능한 리소스를 관리하기 위해 Nagios 및 MySQL의 적절한 구성 관리/DBA 개입도 수행해야 합니다.
이 모든 것을 구성하는 방법은 이 답변의 범위를 벗어납니다. 오래된 속담처럼 모든 계란을 한 바구니에 담지 마십시오.
추신. 각 프로세스가 사용하고 있는 메모리 양을 대략적으로 보려면 여기의 맨 위 그림을 읽으십시오. 더 많은 스왑 공간을 사용하고 있을 수도 있지만 적어도 사용하고 있다는 것을 알고 있습니다. 계산해 보십시오. 그 상단은 RAM 계산이 시스템에 필요한 것보다 훨씬 낮음을 나타내는 매우 대략적인 지표입니다.
PS2. 나는 대부분 상황을 추측하고 있으며 분명히 귀하의 특정 구성을 알지 못합니다. 텍스트를 일반적인 권장 사항 가이드로 고려하세요.