리눅스 CPU Load Average의 위험 범위는?

OS/Linux 2017. 5. 12. 15:54 Posted by 알 수 없는 사용자

http://amateurteamblog.tistory.com/112

에서 퍼온 글입니다



원본글 링크Understanding Linux CPU Load - when should you be worried?


위 글을 번역한 글입니다. 오역이 있을 수 있습니다.


이 포스트를 검색해 들어왔다면, 아마 Load average라는 개념에는 익숙할 것이다. 널리 알려진 바와 같이, Load average는 uptime이나 top 명령어를 쳤을 때 나타나는 세 실수 값으로, 실제 예는 아래와 같다.


load average: 0.00, 0.01, 0.05


대부분의 사람들이 load average의 개념을 다음과 같이 파악하고 있다. 세 숫자가 1분, 5분, 15분 동안 실행 대기 중인 프로세스의 평균 개수이며, 낮을수록 좋다는 것, 그리고 load average가 높으면 해당 머신이 과부하 상태라는 것 정도. 자, 그럼 load average의 한계 값은 얼마일까? 이른바 “좋은”, “나쁜” load average 값이란 어느 정도일까? 그리고 Load average에 대해서 살펴봐야 하는 사항에는 어떤 것이 있고, 이를 최대한 빨리 처리하려면 어떤 작업을 해야 할까?


우선, load average가 실제로 무엇을 의미하는지 살펴볼 필요가 있다. 문제를 단순화 해서, 싱글 코어 프로세서로 구동 중인 장비를 우선 생각해보자.


다리를 건너는 자동차를 예시로 들어보자.


싱글 코어 CPU는 1차선 도로와 같다. 어떨 땐 다리를 건너려는 차들이 많아 다리 위가 매우 혼잡할 것이다. 그럼 다리 위가 얼마나 혼잡한 지를 어떻게 수치로 나타낼 수 있을까? 제일 간단한 방법은 특정 시간 동안 얼마나 많은 차가 건너려고 대기 중인지 파악하는 것이다.


만약에 대기 중인 차가 없다면 바로 다리를 건널 수 있을 것이고, 대기 중인 차가 있다면, 당연히 기다려야 한다. 종합해보면 다음과 같은 정책을 쓸 수 있다.

  • 0.00은 도로 위에 아무런 차도 없다는 뜻: 사실 0.00부터 1.00까지는 대기 중인 차가 없다는 뜻으로, 새로 건너려는 차는 바로 다리를 건널 수 있음을 뜻한다.
  • 1.00은 다리가 차로 꽉 들어차 있다는 뜻: 사실 이 경우 차량 통행에 큰 문제는 없을 테지만 차가 조금이라도 늘어난다면 통행에 문제가 생길 것이다.
  • 1.00이 넘는다면? 대기 중인 차가 있다는 뜻: 그럼 대기 중인 차량이 얼마나 되는 진 어떻게 알 수 있을까? 대기 중인 자동차가 다리 위를 이미 점유하고 있는 차들 대수만큼 있을 때의 값을 2.00으로 정하면 된다. 만약 값이 3.00이라면 다리 위의 두 배 되는 차가 대기 중인 상태를 뜻한다.

위에서 예시로 들었던 내용이 실제로 CPU load 값이 나타내는 의미이다. 대기 중인 자동차는 CPU time을 사용 중인 프로세스들을 의미하고, 대기 중인 차는 큐에 쌓인 프로세스들을 의미한다.


Unix에는 run-queue length라는 개념이 있는데, 실제로 구동 중인 프로세스 개수와 대기 중인 프로세스 개수의 총합을 의미한다.


차량이 대기 중인 것은 누가 봐도 바람직한 상황은 아니기 때문에(그리고 프로세스의 경우에도 똑같기 때문에) CPU load는 1.00 이하인 것이 바람직하다. 가끔 1.00을 넘기는 경우야 괜찮지만, 지속적으로 높은 값을 유지한다면 문제인 것이다.

 

그럼, 이상적인 로드 값이 1.00이란 말인가요?


일반적인 시스템 관리자들은 0.70 정도를 상한선으로 본다.

  • 0.70을 갓 넘었다면: 이제 슬슬 무엇이 문제인지 확인해두는 편이 좋다. 상태가 더 나빠지기 전에.
  • 1.00을 넘었다면: 당장 문제를 찾아내서 고쳐야 한다. 안 그러면 서버 때문에 자다가 불려나갈지도 모르니.
  • 5.00을 넘었다면: 정말 심각한 상황이다. 시스템이 행에 걸리거나 느려지는 중이니 이대로 두면 위험하다.


그렇다면 멀티 프로세서 환경에선 어떤가요? 지금 3.00을 찍고 있는데 잘 동작 하는걸요?


쿼드-프로세서 시스템인가? 그래도 여전히 높다.


멀티 프로세서 시스템에서의 load 값은 가용한 프로세서 코어 개수에 영향 받는다. 100% 사용 중이라면 싱글 코어는 1.00, 듀얼 코어는 2.00으로 나타날 것이다. (당연히 쿼드 코어에서는 4.00)


다리를 다시 예로 들면, 1.00은 다리 한 개의 자동차 최대 용량이다. 즉, 두 개의 다리가 있는 경우에 값이 1.00이라면, 다리 한 개만 가득 찬 상황이라는 것이다. 즉, 전체적으로 보면 50%만 점유된 상태다.


CPU에 대해서도 똑같다. 1.00이란 뜻은 싱글 코어 시스템에서 CPU가 100% 점유된 상태라는 뜻이다. 듀얼 코어 시스템에서는 당연히 2.00에 해당된다.


멀티 코어 VS 멀티 프로세서


순전히 퍼포먼스 관점에서는, 싱글 듀얼코어 프로세서나 싱글코어 프로세서 두 개나 매한가지이다. 물론 여기에는 캐시라던가 여러가지 이슈 사항들이 있지만, CPU load 관점에서는 코어 개수가 가장 중요한 이슈이다.


간단히 요약을 해 보면,

  • 코어 개수 = 최대 Load 값: 멀티 코어 시스템에서는 load가 코어 개수를 넘어가서는 안 된다.

다시 원점으로 돌아가 보자.


uptime 명령어를 입력했을 때의 결과를 한 번 살펴보자.


[root@localhost ~]$ uptime

23:05 up 14 days, 6:08, 7 users, load averages: 0.65 0.42 0.36


현재 이 시스템은 듀얼코어 시스템으로, 아직 여유가 많이 남아 있음을 알 수 있다. 그럼 저 세 개의 숫자는 결국 무슨 뜻일까? 0.65는 최근 1분, 0.42는 최근 5분, 0.36은 최근 16분 간의 평균 실행/대기 중인 프로세스 수이다.


그럼 어떤 평균 값을 봐야합니까? 1분? 5분? 아니면… 15분?!


지금까지 얘기 했던 “1.00일 땐 시스템을 점검해야해요!”의 관점에서 보자면, 5분이나 15분 평균을 봐야 한다. 사실 1분 동안 잠시 1.00을 넘는 정도야 괜찮다. 15분 평균이 1.00을 넘기면 서버가 지속적인 부하 상태에 남아 있다는 뜻이므로 시스템을 점검하는 편이 좋다. (다시 한 번 강조하지만, 시스템의 코어 개수에 따라 이상적인 Load 값이 결정된다.)



출처: http://amateurteamblog.tistory.com/112 [아마추어 팀블로그]

'OS > Linux' 카테고리의 다른 글

cp -f 등 특정 옵션이 안 먹힐 때, 확인 사항  (0) 2015.03.20
yum histroy 관리법입니다.  (0) 2015.03.06
dmidecode 리눅스 하드웨어 정보 확인  (0) 2015.01.07
리눅스 파일의 속성 관련  (0) 2014.03.13
xshell 기본 설정  (0) 2013.11.12

벤더별 Warranty 확인 사이트

OS 2015. 11. 2. 13:45 Posted by 알 수 없는 사용자
ㅇ벤더사별 Warranty 조회 사이트

 

1. IBM

https://www-947.ibm.com/support/entry/portal/wlup

 

2.HP

https://h20565.www2.hp.com/hpsc/wc/public/home

 

3.Dell

http://www.dell.com/support/home/us/en/19/Products/

 

4.SuperMicro

http://www.supermicro.com.tw/support/Warranty/


ㅇ서버 내, Serial key 조회방법

리눅스

dmidecode | grep 'Serial Number' | head -1

 

윈도우

wmic bios get SerialNumber
wmic csproduct get IdentifyingNumber

<Fport>TCP/UDP 포트와 매핑된 프로세서 확인

OS/Windows 2015. 10. 30. 10:14 Posted by 알 수 없는 사용자

 

Fport는 netstat -na 명령을 이용해서도 알 수 없는, 해당 포트에 대한 매칭되는 프로그램을 알 수 있는 아주 강력한 도구이다. 즉, 백도어라던지 악성 프로그램를 찾는데 매우 유용하게 쓸 수 있다.

http://www.mcafee.com/kr/downloads/free-tools/fport.aspx?view=legacy

image

/ap : 응용 프로그램 디렉토리로 정렬
/p : 포트로 정렬
/a : 응용 프로그램으로 정렬
/i : 프로세서 ID로 정렬

유선 무선 우선순위 정하기

OS/Windows 2015. 10. 29. 10:56 Posted by 알 수 없는 사용자

 

 

1. 노트북으로 유선과 무선 둘 다 사용할 때

무선이 자꾸 우선순위가 되어서 잘 끊기는 경우에 유선 우선순위로 하는 방법입니다.

 

네트워크 연결을 가봅니다 (실행창에서 ncpa.cpl ㄱㄱ )

image

유선 무선을 보기 편하게 변경

 

유선을 젤 위로 올려줍니다.

image

[Windows] 환경 변수 추가 방법

OS/Windows 2015. 9. 9. 17:06 Posted by 알 수 없는 사용자

 

CMD에서 작업할 때,  perl이나 sed 같은 솔루션을 별도로 사용할때

system32에 걍 넣고 두기에 찜찜해서

PATH 설정해두고 사용

svchost.exe 메모리 Leak 현상이 발생됨

서버 재구동 으로 svchost.exe 를 재구동 해도 동일하게 지속

image

 

해당 관련하여 Windows HotFix가 있어서, 설치 후 정상화되었습니다.

 

참고)

https://support.microsoft.com/ko-kr/kb/2847346

cp -f 등 특정 옵션이 안 먹힐 때, 확인 사항

OS/Linux 2015. 3. 20. 15:56 Posted by 알 수 없는 사용자

 

백업 이나 conf 파일 들을 복사할 경우

cp –f 옵션을 사용할 때, 

image

error 가 발생할 경우가 있다.

 

alias 를  쳐보면

alias cp=’cp –i’  설정이 되어있는 경우이다.

 

cp 명령어 앞에 ‘\’를 넣어서 사용하면 alias 설정이 무시된다

 

\cp –apr

'OS > Linux' 카테고리의 다른 글

리눅스 CPU Load Average의 위험 범위는?  (0) 2017.05.12
yum histroy 관리법입니다.  (0) 2015.03.06
dmidecode 리눅스 하드웨어 정보 확인  (0) 2015.01.07
리눅스 파일의 속성 관련  (0) 2014.03.13
xshell 기본 설정  (0) 2013.11.12

Windows 2003 지원종료 2015년 07월 14일

OS/Windows 2015. 3. 9. 16:50 Posted by 알 수 없는 사용자

2015년 07월 14일 Windows 공식 지원이 종료됩니다.

http://www.microsoft.com/ko-kr/business/windows-server-2003-end-of-support/

 

MS_공식지원

yum histroy 관리법입니다.

OS/Linux 2015. 3. 6. 16:26 Posted by 알 수 없는 사용자

 

리눅스 라이브러리나 간단한 미들웨어는 yum을 통하여 관리하고 있습니다.

 

종종 라이브러리를 설치하다보면 의존성으로

다른 라이브러리도 묶여서 설치가 되는데요

 

yum의 history을 통하여 정보를 체크해 볼수 있습니다.

생각보다 깔끔하게 정리가 되네요

Action부분에 I는 Install, U는 Update 입니다.

image

 

ID 22를 조회해보면 아래같이  해당 이벤트때 변경된 내역이 출력됩니다.

image

-y install mysql-devel mysql

명령어를 통하여 설치를 진행했네요

 

해당 22번 이벤트 자체를 없애려면

rollback 명령어를 통하여 21번 이벤트로 복원이 가능합니다.

image

공인 인증서(NPKI) 윈도우 버전별 위치입니다.

OS/Windows 2015. 1. 16. 10:21 Posted by 알 수 없는 사용자


연말 정산 하려고 다들 인증서 작업하실텐데,


공인 인증서 위치 참고하세요~


공인 인증서

Windows XP : C:\Program files\NPKI

Windows 7 : C:\Users\[사용자 계정명]\AppData\LocalLow\NPKI

Windows 8 : C:\Users\[사용자 계정명]\AppData\LocalLow\NPKI

Windows 8.1 : C:\Users\[사용자 계정명]\AppData\LocalLow\NPKI


ISP

Windows XP : C:\Windows\Application Data\VCard 

Windows 7 : C:\Users\[사용자계정명]\AppData\LocalLow\KVP\Application Data\VCard

Windows 8 : C:\Users\[사용자계정명]\AppData\LocalLow\KVP\Application Data\VCard

Windows 8.1 : C:\Users\[사용자계정명]\AppData\LocalLow\KVP\Application Data\VCard