2010년 6월 7일 월요일

top 화면 내용중 load average와 PRI : priority(우선순위) 정리

=============================================================================

load average

서버에 걸리는 평균 부하율 1분, 5분, 15분

load average 는 process 작업의 대기를 의미합니다. 즉, 1분간 평균 load average가 1 이라면, 1분동안 1개의 작업이 대기하고 있다는 얘기입니다.
즉 값이 높으면 높을수록 대기하는 작업이 많아지게 되고, 이는 곧 서버가 부하를 받고 있다는 얘기가 됩니다.

즉, 서버가 아주 좋은 상태는 load average 가 1 보다 작은 값이고, 1보다 클 경우 는 서버가 부하를 받기 시작한다고 보게 됩니다.

평균적으로 4정도를 넘으면 부하를 받는다고 판단을 하며, 이 기준은 관리자마다 주관적인 차이가 있습니다.
또한 같은 사람이라도, 서비스에 따라, load average 15 가 양호한 상태라고 판단하는 경우가 있습니다.
즉, load average 는 절대적인 판단 기준이 되는 것은 아니라는 의미입니다.

예를 들어 서버에서 별로 하는 것이 없는데 15가 넘는다면, 그건 심각한 문제가 있다는 얘기가 될수 있지만, 서버에서 DB 돌리고, ftp 돌리고, 대량메일 발송하고, 웹 동시 접속자가 1000명 정도 되는 서버인데 15라면 잘 버티고 있는 것이라 봐야 겠습니다.

우리 서비스상의 서버의 load average 값이 5이상이라면 이때는
커널 튜닝 and or 하드웨어의 업그래이드가 필요한데 이것은 메모리의 사용률을 함께 참조 해야 합니다.

먼저 필요 없는 프로세스가 실행되고 있나 확인 하고
필요 없는 프로세스라고 판단되는 경우 과감하게 종료 시킵니다.
※ Zombie : process는 죽었는데 자원을 차지하고 있는 것(전염성이 있음)
반드시 강제 종료해야 한다.
강제 종료 안 되면 시스템 재부팅 합니다.

커널의 튜닝의 경우 로그 파일을 확인 하여 file limit과 같이 프로세스 관련 항목을 튜닝해야 하며
메모리의 자원이 부족하거나 swap메모리의 양이 늘어나면
메모리를 추가 하여야 하며
메모리에 여유가 있으나 load average값이 늘어나면 CPU를 업그레이드 해야 합니다.



PRI : priority(우선순위)

CPU 스케줄링에서 필요한 순위입니다.

현재 OS는 한번에 여러개의 프로세스가 동시에 실행되도록 함으로써 CPU의 노는 시간을 줄이고 자원사용의 효율성을 최대화 시키기 위해서 다중프로그래밍이라는 알고리즘을 이용합니다.

※ 다중 프로그래밍 : CPU 점유방법

CPU는 사용자가 계산을 요구하면 그 작업에 대한 header 를 가지고 작업을 메모리에서 수행합니다.
메모리에서 작업을 하는 동안 사용자가 또다른 요구를 하게 되면 CPU는 우선되는 값을 체크합니다.
나중에 사용자가 요구한 계산값이 우선권이 더 높으면 CPU는 처음에 사용자가 요구한 계산값을 메모리사용량을 줄이고 나중에 요구한 값에 더 많은 메모리 영역을 분배하여 계산을 하도록 합니다.
이렇게 작업영역을 배분해주는 것이 스케줄링이라고 보시면 됩니다.

이 다중 프로그래밍에서 프로세스 순서에서 순위를 나타내는 값을 우선 순위 라고 합니다.

댓글 없음:

댓글 쓰기