본문 바로가기
Linux/리눅스엔지니어

Load Average가 100이 넘어갈 때,

by ccclog 2024. 7. 30.
반응형

https://github.com/pjhwa/linux-engineers/wiki

 

Home

Contribute to pjhwa/linux-engineers development by creating an account on GitHub.

github.com

Github에서 본 질문에 대해 정리해봅니다. 

 

서버의 Load Average가 갑자기 100 이상으로 급증하면 이는 시스템에 과부하가 걸려 매우 비정상적인 상태에 있다는 것을 의미합니다. 이러한 상황에서는 여러 가지 현상이 발생할 수 있으며, 이를 대처하기 위해 다음과 같은 조치를 취할 수 있습니다.

1. CPU 과부하

현상:

  • CPU 사용량이 100%에 도달하고, 시스템 응답이 지연되거나 아예 응답하지 않을 수 있습니다.
  • 모든 프로세스가 느려지며, 특히 CPU 집약적인 작업이 거의 수행되지 못할 수 있습니다.

대처 방안:

  • 실시간 모니터링: top 또는 htop 명령어를 사용하여 어떤 프로세스가 CPU를 많이 사용하고 있는지 확인합니다.
  • 프로세스 종료: kill 명령어를 사용하여 불필요하거나 오작동하는 프로세스를 종료합니다.
  • 부하 분산: 서버의 부하를 줄이기 위해 추가 서버를 구성하거나 로드 밸런서를 도입하여 트래픽을 분산시킵니다.

2. 메모리 부족 (메모리 누수)

현상:

  • 시스템이 메모리를 소진하여 스왑 메모리를 사용하기 시작하면 디스크 I/O가 증가하며, 전체 시스템 성능이 저하될 수 있습니다.
  • OOM (Out Of Memory) Killer가 동작하여 메모리를 많이 사용하는 프로세스를 강제로 종료할 수 있습니다.

대처 방안:

  • 메모리 사용 모니터링: free, vmstat 명령어를 사용하여 메모리 사용량을 확인합니다.
  • 문제 프로세스 종료: ps aux --sort=-%mem 명령어를 통해 메모리를 많이 사용하는 프로세스를 파악하고, 필요한 경우 종료합니다.
  • 메모리 최적화: 애플리케이션의 메모리 사용을 최적화하거나, 메모리 누수 문제를 해결합니다. 필요 시 서버의 물리적 메모리를 증설합니다.

3. 디스크 I/O 병목

현상:

  • 디스크 읽기/쓰기 속도가 느려지며, I/O 작업이 지연되어 시스템 전체의 성능이 저하될 수 있습니다.
  • 프로세스가 디스크 I/O를 대기하면서 멈추거나 매우 느려질 수 있습니다.

대처 방안:

  • 디스크 사용량 모니터링: iostat, iotop 명령어를 사용하여 디스크 I/O 상태를 확인합니다.
  • 디스크 정리: 불필요한 파일 및 로그를 삭제하여 디스크 사용량을 줄입니다.
  • I/O 부하 분산: RAID 설정을 통해 디스크 I/O 부하를 분산시키거나, SSD로 디스크를 업그레이드하여 I/O 성능을 향상시킵니다. 필요 시 디스크 I/O 집약적인 작업을 다른 서버로 분산시킵니다.

이러한 조치를 통해 서버의 부하를 신속하게 줄이고 정상 상태로 복구할 수 있습니다. 문제가 반복되지 않도록 근본 원인을 파악하고 예방하는 것도 중요합니다.

반응형