서버의 로드가 너무 높게 걸림니다.

yuzibosu의 이미지

안녕하세요.
개발자 인데 서버의 상태가 너무 않 좋아져서 질문드립니다.

$>top
한 결과에서
cpu 5%
memory 는 2G에서 1.9 G
swap 은 거의 사용 않 되고 있고
loadaverage 가 160, 170, 170 이정도...

질문 1:
loadaverage가 0. 대로 나오는 걸로 알고있는데 단위셋팅이 %가 아닌 다른 형태인건가요..?
그렇다면 이거 일반적인 % 형태로 바꾸는 옵션이 있는건가요.?

질문 2:
loadaverage 가 너무 높게 나오는 거 같은데(관련 프로세스-apache, php, mysql-를 구동하면 조금씩 증가하여 1시간내로 저 수치가 나옴) 확인 해 봐야 할 항목이 뭐가 있을까요..?

정확한 정보나 제 질문에서 추가해야될 정보가 있으면 올리겠습니다.

부탁드립니다..

dormael의 이미지

좀 더 상세한 정보를 올려주세요.

우선 윗부분은 모두, 프로세스 리스트를 CPU사용률로 정렬해서 상위 10개정도..

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

yuzibosu의 이미지

이미지파일이 않 올라가서 묶어서 올립니다.

top_basic.bmp : 아파치,php,mysql 올리기 전입니다.
top_mem.bmp,top_cpu.bmp : basic 에서 cpu, mem 소팅
top_after20min.bmp :20 분 정도 후 정보입니다.

load average가 계속 증가합니다.
최초 질문시의 메모리 2G를 6G로 증설하고 올립니다.
이 메모리도 계속 증가를 하네요..

KLDP와 구글분에게 질문해서 찾아본 결과
apache conf 에서 keep alive 끄고 connection timeout 줄였습니다
php.ini 파일에서 memory-limit 값이 현제 100 인데...32로 수정할지 고민중입니다.

30 분정도에서 보고있으니 load average는 10. 대에서 머무르고 메모리 사용량은 계속 증가하는군요.
질문)그럼 로드 부분은 문제가 없는 건가요?
질문) top 화면에서 보면 apache 구동하자마자 php 측 모듈이 좌악 ~ 올라가는데 이게 정상인가요? 현제느(30분후)는 어느정도 정리가 되서 실제 구동되는 php 만 보이는 듯 합니다만.
질문) 메모리가 계속 증가하는데...확인 해야 되는 내용이 뭔지요.?

개발자가 갑자기 SE 영역에 들어갈려니 토 나오는군요..헉 ㅜㅜ

감사합니다.

댓글 첨부 파일: 
첨부파일 크기
Package icon top.zip170.73 KB
사랑천사의 이미지

코드에서 메모리를 할당하고 나서 해제해야 하는데 안 한게 있는지 확인해 보시고...
무한 루프 도는 부분이 있나 한번 보시고... 그 루프가 문제가 될 수 있으니까요.

저는 개발자가 아니고 시스템 관리자 입장에서 말씀 드리지만, 서버가 버벅거리거나 뭔가 좀 부하가 많이 걸리는 것은 두 가지 경우라고 봅니다.(물론 제 경험에 의하면...)

첫째, 원래 뜨고 나면 활발한 동작을 한다거나 메모리를 많이 잡아먹는 프로그램을 실행한 경우.
둘째, 작성된 프로그램의 버그가 있는 경우.

일반저긍로 개발/실험용 시스템인 경우 이런게 대부분이고, 그 외 실제 서비스 되는 서버의 경우는 상대적으로 접속 폭주 등도 좀 많다고 봅니다. 다만, 이 것도 프로그램을 최적화 하는 것에 따라 달라질 수 있습니다. 그건 개발자라고 하시니 대충 아실 거라 믿습니다.

그리고 PHP 모듈들이 올라간다고 하셨는데, 무슨 말씀인지 정확히 이해는 안가지만, 제가 생각하는 것이 맞다면 PHP가 Apache와 연동되는 환경이라면 모듈 전부 올라가는게 맞을 겁니다. 물론, 올라가도록 설정된 것만...
----
Lee Yeosong(이여송)
E-Mail: yeosong@gmail.com
HomePage: http://lys.lecl.net/
Wiki(Read-Only): http://lys.lecl.net/wiki/
Blog: http://lys.lecl.net/blog
MSN: ysnglee2000@hotmail.com
----
절이 싫으면 중이 떠나는 것이 아니라, 절이 싫으면 중이 절을 부숴야 한다.

사람천사

yuzibosu의 이미지

php 모듈이라고 한 부분은
음..제 서버에 팀에서 사용하는 프로젝트 관련된 각각의 php 모듈들이 다 있습니다.
그니까 서브도메인이라고 해야 정확한건가..
음...apache-php 연동이며 각 php 사이트들은 각 프로젝트 관련 정보를 제공하는 사이트...이정도 ^^..
그렇다고 제가 php 개발자는 아니라서...(인계받고 걍..그런가 보다...두고지내다가..문제가 발생하니...쩝.)

궁금한점..
-->
그리고 PHP 모듈들이 올라간다고 하셨는데, 무슨 말씀인지 정확히 이해는 안가지만, 제가 생각하는 것이 맞다면 PHP가 Apache와 연동되는 환경이라면 모듈 전부 올라가는게 맞을 겁니다. 물론, 올라가도록 설정된 것만...
-->
이 부분에서 올라가도록 설정된 것만..이라는 것은 로드시점을 조정할 수 있다는 말씀인건가요..?

top 으로 보고있으면..apache 가 구동되자마자 거의 모든 연동 php 들이 다 올라갑니다.
그리고 점차...사라집니다.
한 참 후에 실제 사용중인 php들만 떠 있구요..
이게 정상인가요..?
추가적으로 이 php 들의 사용 메모리는 php.ini 에 정의된 memory-limit(?) 이 값까지 최초 로딩시 무조건 잡고 올라가나요?

쓰고보니 횡설수설이네요 00
정리하면..
궁금 1.최초 apache 구동시점에서 왜 php 모듈(site) 들이 전부 top 의 프로세스에서 다 보여지며 메모리를 잡고 있는지..(그냥 apache만 구동한 거 뿐인데..)
궁금 2.php가 모두 로딩되는게 정상이면 메모리를 php.ini에서 정의한 값으로 첨부터 시작하는게 정상인지
궁금 3.님의 말씀에서 ..php가 올라가는 시점을 설정할 수 있는건지..
궁금하네요..

감사합니다.수고하세요

dormael의 이미지

서비스가 구동되고 나서 hpptd, mysql이 상당히 활발히 동작중인것 같습니다.

추가로 CPU시간중에 wait의 비중이 높은걸로 봐서 디스크 IO가 많이 발생하는게 아닌가 싶네요.
여러 가지 가능성이 있겠지만 제 경험상 APM환경에서 가장 가능성이 높은건 mysql의 디스크 억세스가 많이 발생하는 것입니다.

대부분 mysql의 경우 환경에 적합한(주로 메모리 관련) 설정이 되어있지 않은 상황에서 돌리는 경우가 많았습니다.
시스템에 메모리를 많이 추가해도 mysql이 효율적으로 쓸 수 있게 하려면 적합한 설정이 필요합니다.

마지막 이미지(20분후)는 조금 다른 상황을 나타내는것 같아서 확실하게는 말씀드리기가 어렵네요.

mysql의 slow query 정보나 vmstat의 추가적인 정보가 있으면 좀 더 이해하기 쉬어질 텐데요.

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

사랑천사의 이미지

아무레도 PHP가 그 뭐냐... CGI로 설정된 거 같은데요.
그리고 모듈이 올라간다는게 제가 생각하는거랑 전혀 틀린 개념 같ㅅ흡니다.
쉽게 말해 아파치를 기준으로 PHP 모듈이 올라간다고 하면 mod_php.c 가 올라가는걸 말하는 것이 되겠고, PHP 입장에서 모듈이 올라간다고 하면 PHP의 확장 기능들이 모듈로 컴파일 된 것이 올라간다고 볼 수 있는데 말이죠 음. 후자의 경우라면 bz2, mysql, mysqli 같은.. 뭔 말인지 대강 이해가 가실 듯. 그게 아니라면, 글쎄요...

그리고 PHP가 아파치 모듈 형태로 로딩되는 경우라면 관련된 하위 모듈(확장 기능..)이 로드되는건 당연합니다. CGI 모드로 PHP와 연동되는 것이라면 좀 다릅니다. 필요할 때만 뜨죠. 다만 속도는 느립니다. CGI가.

솔직히 지금 무슨 상황인지 잘 이해가 안 갑니다 두 번이나 읽어 봐도.

그리고 그 메모리 최대 값은 처음 부터 먹고 들어가는건 아니고 쓰게 되다가 보면 그게 최대값인 거지요 사실. 처음 부터 먹고 들어간다고 치면 그건 좀 문제가 있습니다 음. 혹시 top한 것을 10 줄 정도만 텍스트로 보여 주실 수 있으실려나요?

프로세스 목록 뜨는 부분 부터요. 그 처음에 아파치 띄우면 나타난다는 것이 뭔지 알아야 할 거 같습니다.

그럼...
----
Lee Yeosong(이여송)
E-Mail: yeosong@gmail.com
HomePage: http://lys.lecl.net/
Wiki(Read-Only): http://lys.lecl.net/wiki/
Blog: http://lys.lecl.net/blog
MSN: ysnglee2000@hotmail.com
----
절이 싫으면 중이 떠나는 것이 아니라, 절이 싫으면 중이 절을 부숴야 한다.

사람천사

elflord의 이미지

load average의 단위는 프로세서가 처리해야 할 업무개수로 이해하시는 편이 좋습니다. 프로세서가 하나면 1을 넘기면 과부하가 걸리고 있는거지요. 프로세스가 많으면 더 많은 처리가 가능합니다만 두자리수를 넘기는건 어떻게 봐도 상당히 부하가 걸리고 있군요.

일단 vmstat를 봐야 다음단계로 넘어갈 수 있을 것 같습니다.

===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

사랑천사의 이미지

흐흠.. 그렇게 따진다면 왼만한 서버는 전부 과부하 아닐지요...
----
Lee Yeosong(이여송)
E-Mail: yeosong@gmail.com
HomePage: http://lys.lecl.net/
Wiki(Read-Only): http://lys.lecl.net/wiki/
Blog: http://lys.lecl.net/blog
MSN: ysnglee2000@hotmail.com
----
절이 싫으면 중이 떠나는 것이 아니라, 절이 싫으면 중이 절을 부숴야 한다.

사람천사

elflord의 이미지

중복삭제


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

elflord의 이미지

아니죠. 가령 쿼드코아CPU라면 4까지는 정상부하라고 볼수 있지요.

===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

사랑천사의 이미지

흐흠... 흐흠. 아무레도 서로 1이라는 기준이 좀 다른 거 같군요.

제가 말하는 것은 말 그대로 1이고... 님 말씀은 100 인거 같군요. 듀얼 코어라면 200이 되어야 맞지 않을까요.. 쿼드면... 400 흐흠...

제 생각이 틀린가요?

제가 맡은 서버는 30에서 40정도 뜨는데, 크게 문제 없어 보이더군요.

뭐, 전체를 1로 보고 이 1을 100%로 간주한다면 님 말씀이 맞는 거 같네요.
----
Lee Yeosong(이여송)
E-Mail: yeosong@gmail.com
HomePage: http://lys.lecl.net/
Wiki(Read-Only): http://lys.lecl.net/wiki/
Blog: http://lys.lecl.net/blog
MSN: ysnglee2000@hotmail.com
----
절이 싫으면 중이 떠나는 것이 아니라, 절이 싫으면 중이 절을 부숴야 한다.

사람천사

elflord의 이미지

님과 제가 뭔가 다른 수치를 가지고 서로 오해를 하고 있는게 아닌가 하는 생각도 드는군요.

제가 지금 말하고 있는 것은 리눅스에서 top커맨드 실행시 최상단에 뜨는 load average로 이것은 기본적으로 uptime커맨드에서 뜨는 정보와 같은걸로 알고 있습니다. (적어도 레드햇과 데비안계열은. 다른 리눅스계열은 제가 안써봐서 모르겠군요.)

여기에 뜨는 수치는 시피유의 활동시간을 1,5,15분씩 각각 평균을 낸 것으로 머신에 1코어 CPU한개만 탑재되어 있을 경우 1이 뜨면 CPU가 풀타임으로 가동중이라는 뜻이고 (즉 %단위가 아닙니다) 1이상이 되면 모든 업무들이 레이턴시를 가지게 되지요. 즉, 부하가 크지 않는 머신이라면 0.대가 뜨는것이 당연합니다.

===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

사랑천사의 이미지

흐흠. 제가 말하는 것은 그 항목이 아니었습니다. 저 역시 위에도 적었지만, 님이 말씀하시는 수치와 다른 것을 이야기하고 있기 때문에 서로 오해가 있는게 아닌가하고 있었습니다.
----
Lee Yeosong(이여송)
E-Mail: yeosong@gmail.com
HomePage: http://lys.lecl.net/
Wiki(Read-Only): http://lys.lecl.net/wiki/
Blog: http://lys.lecl.net/blog
MSN: ysnglee2000@hotmail.com
----
절이 싫으면 중이 떠나는 것이 아니라, 절이 싫으면 중이 절을 부숴야 한다.

사람천사

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.