Skip to content

top 화면 내용중 load average와 PRI,stopped process

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는 처음에 사용자가 요구한 계산값을 메모리사용량을 줄이고 나중에 요구한 값에 더 많은 메모리 영역을 분배하여 계산을 하도록 합니다.
이렇게 작업영역을 배분해주는 것이 스케줄링이라고 보시면 됩니다.

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

top명령어 에서 stopped process의 의미
top명령어을 실행해 보면
38 processes: 36 sleeping, 2 running, 0 zombie, 0 stopped
이런 화면이 나옵니다. 이 중 stopped의 진정한 의미에 대해서 설명하겠습니다.

top화면에 stopped process가 생기는 경우는
프로그램을 실행한후 Ctrl+Z키를 눌렀을 경우 입니다.
한마디로 Ctrl+Z 키를 눌러 생기는 이벤트라고 할수 있습니다.
프로세스가 말그대로 잠시 멈추게 됩니다.
메모리상에 올라와 있지만 실행은 되지 않는 상태입니다.

sleep과의 차이는 sleep은 인터렙트발생시 바로 실행상태로 바뀌어지지만 (준비상태…와 같이) stop이 되어있는 프로세스는 프로세스 재실행에 맞는 이벤트가 있어야만(bg, fg 같은 프로세스 명령)다시 실행이 됩니다.(대기상태…와 같이)
이것은 실제로 정지와는 틀립니다.
정지된 프로세스는 물론 사라지지만 위에서의 stop은 정지후 대기상태로 전환을 뜻합니다.
정지의 시그널 넘버가 19
Ctrl+Z 키를 눌러 발생하는 시그널 넘버는 20으로 서로 다릅니다.

진정한 의미에서 정지가 아니지만
top화면에서는 stopped라고 나오게 됩니다.
.

Published inLinux