KLDP BBS, KLDP.net 접속 오류 문제

권순선의 이미지

5월 6일 추가사항: 현재 KLDP.net은 다시 원상복구되어 있는 상태이며, 이곳 KLDP BBS 이용 도중 수시로 발생하는 다음과 같은 식의 memory관련 에러는 아직 뚜렷한 해결방법을 찾지 못한 상황입니다. 이러한 상황에 대해 혹시 해결 방법을 아시는 분은 답글을 달아 주십시오....

Quote:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 184320 bytes) in /public/kss/WWW/script/newbbs/includes/page_header.php on line 388

아시는 분은 아시겠지만 이곳 KLDP BBS가 최근 잦은 접속 불능 현상을 나타내고 있습니다. 이를 해결하기 위하여 몇가지 설정을 바꾸어 보긴 했습니다만 별다른 효과가 없었고, 근본적으로 많은 리소스를 필요로 하는 kldp.net 서비스와 KLDP BBS 서비스가 하나의 서버에서 동작하고 있는 구조 자체가 문제가 아닌가 하는 생각에 일단 원인이 kldp.net 서비스인지 살펴보기 위해 당분간 kldp.net 서비스를 중단한 것입니다. (kldp.net 은 웹서비스 뿐만 아니라 ldap, bind, pgsql, ftpd 등 많은 서비스 데몬을 복합적으로 요구하고 있습니다.)

이미 kldp.net은 지금보다 사양이 훨씬 좋은 서버로 이전 작업이 확정되어 있으므로 지금 당장 서비스가 되지 않는다고 해서 불안해하실 필요는 없습니다. (이전 일정은 대략 5월 중순경으로 생각하고 있습니다.)

이용에 불편을 끼쳐드려 대단히 죄송합니다....

관리자 주제: 

댓글

권순선의 이미지

참, kldp.net 서비스와 kldp.org 초기화면은 5월 6일(화요일) 저녁 10시 이후에 다시 복구시키도록 하겠습니다.

권순선의 이미지

그것참 요상하군요. 리소스를 많이 차지하는 kldp.net관련 서비스들을 모두 중지시켜 두었는데도 방금 예전과 같은 문제가 또다시 발생했습니다. 일단 좀더 지켜보도록 하지요.... :oops:

권순선의 이미지

일정한 조건에 대해서 프로세스가 fork나 그외 동작을 위한 메모리를 할당받지 못하여 생기는 문제 같습니다. 그래서 일단 apache의 MaxClients 설정값을 128에서 30으로 줄여 보았습니다. 그래도 계속해서 문제가 생기는지 한번 두고 보겠습니다.... (이래도 안되면???? :cry: :cry: )

권순선의 이미지

apache의 MacClients 설정값이 30이 되면 아마도 kldp.net 서비스를 재개할 경우 kldp.net이 제대로 돌지 않을 가능성이 있습니다. 서버의 리소스를 어떤식으로 각 프로세스가 나눠 먹는지 정확히 모르지만 예전 기억을 되살려 보면, postgresql과의 접속이 제대로 되지 않더군요.(어차피 이곳 KLDP BBS는 postgresql을 사용하지 않으므로 상관 없고요.) 그렇지만 어쨌든 곧 kldp.net은 따로 떼어서 다른 서버에 옮길 것이니 문제가 없다면 그냥 이렇게 두면 될것 같네요. 8)

현재 설정 상태에서 단 한번이라도 접속이 잘 되지 않는 현상이 발생하거나, 이전과 비교해서 사용상 달라진 점이 있으면 주저없이 이야기해 주세요.... 그렇지 않으면 어떤 상태인지 알 수가 없으니까요.

맹고이의 이미지

방금 bbs.kldp.org를 이용하다가..

Quote:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 184320 bytes) in /public/kss/WWW/script/newbbs/includes/page_header.php on line 388

이런 말이 나왔네용..
B00m의 이미지

저두 위같은 에러가 종종 날뿐만 아니라..

평균 두번중에 한번은 페이지가 안 열리네요..

흠... 원인이 뭘까요....

천재태지서주영의 이미지

음... 저도 들어오자마자 페이지를 못찾는다고 해서 놀랐습니다.
근데 메모리 사이즈 관련 에러도 종종 나오네요.
10 번 클릭하면
3 번은 페이지 못찾는다고 하고
2 번은 메모리 사이즈 에러나고...
거의 50% 확률로 되는거 같군요.

지금 글 쓸 때 아래에 나오는 '주제검토' 프레임도 메모리 사이즈 에러가.. ㅡㅡ;

이 정도면 꽤나 심각한것 같은데 다른 분들의 말씀을 보니 php 나 apache 관련 버전을 신경써보심이 어떨지...

부디 조속한 시일내에 정상화되면 좋겠군요.

ps. 헉.. 이 글도 한번에 안올라가서 다시 씁니다 ㅡㅡ;

천재태지서주영

권순선의 이미지

일단 서버를 리부팅시켜놓은 상태이고, google 선생님에게 물어봤는데 아직 뚜렷한 해결방법은 찾지 못했습니다. apache/php를 직접 컴파일하면 괜찮다는 이야기도 있고, php.ini에서 메모리 사이즈를 늘리면 된다는 이야기도 있고, phpBB등 php로 만들어진 프로그램 쪽의 버그라는 이야기도 있지만 확실한 해결책이 제시된 곳은 아직 없었습니다. :cry: :?

권순선의 이미지

이와 관련된 모든 논의는 이 쓰레드에서 하기 위해 이전에 다른 게시판에 올렸던 글은 잠그어 두었습니다. 참고하기 쉽게 하기 위해 URL을 올려 둡니다....

http://bbs.kldp.org/viewtopic.php?t=19455

choissi의 이미지

제 사이트를 운영하면서 생긴 문제인데,

Quote:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 184320 bytes) in /public/kss/WWW/script/newbbs/includes/page_header.php on line 388

이것은 php.ini의 설정 부분에..

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 120 ; Maximum execution time of each script, in seconds
memory_limit = 16M ; Maximum amount of memory a script may consume (8MB)

요것과 관련이 있습니다.

php에서 사용하는 메모리 용량을 제한하는데 그게
php가 순순하게 사용하는 메모리 용량이 아니라 아파치
데몬 하나가 총 사용하는 메모리 공간인듯 싶어요

16M정도로 셋팅해보세요...

ps. 제가 직접 컴파일해서 컴팩트 하게 아파치를 올릴때는
아파치 하나당 메모리 차지하는게 4메가 정도에 php프로그램 따라서
2~3메가 더 잡아 먹곤 했는데,

레드햇 정품에 들어있는 모듈이 다 로드 되는 버젼은 그냥 뜨기만 해도
6~7메가에 이르더군요.. 그래서 php모듈에서 좀만 뭐 할려고 하면
메모리 할당 오류나서 페이지를 만들다가 말더라구요..

mod_python
mod_perl
mod_ssl
정도만 빼도 가벼워 지더군요

그리고 php.ini에서 php 공유라이브러리도
필요없는것을 뺄 필요가 있습니다.

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

sunyzero의 이미지

php.ini에 보면 기본값으로 메모리를 8M를 할당하도록 되어있습니다.

따라서 이 값을 적절하게 늘려주시면 될것 같습니다. 아파치의 MaxClients 값과는 상관관계가 없어보입니다. 아래부분이 메모리 할당제한입니다.

memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)

PS) 헉 바로 윗분이 올리셨군요. 부연설명ㅇ르 드리자면, 개별 스크립트 파싱에 사용하는 메모리제한양입니다. php 모듈을 뺀다고 해서 안나는 것은 아니더군요. 경험적으로 좀 크게 mysql에서 데이터 긁어오다보면 꼭 발생하는 문제더군요.

========================================
* The truth will set you free.

권순선의 이미지

어제밤에 google 선생님께 물어봤을 때 이 설정을 바꾸는 것에 대한 이야기도 많이 있었는데 대부분 32MB까지 늘려도 에러가 계속 생기더라...하길래 완전한 방법은 아니다 싶어서 적용은 하지 않았습니다만, 일단 적용해 봐서 손해볼 것은 없기에 기존의 8MB에서 16MB로 설정을 고쳐 둔 상태입니다. :)

만약 같은 문제가 또 생기면 바로 알려 주세요....

mushim의 이미지

지금 2가지의 문제가 생긴거죠?

Quote:
이곳 KLDP BBS 이용 도중 수시로 발생하는 다음과 같은 식의 memory관련 에러는 아직 뚜렷한 해결방법을 찾지 못한 상황입니다.

Quote:
그런데 알수없는 이유로 인하여 매일 root 소유의 apache 프로세스가 사라지고
권순선의 이미지

mushim wrote:
지금 2가지의 문제가 생긴거죠?
Quote:
이곳 KLDP BBS 이용 도중 수시로 발생하는 다음과 같은 식의 memory관련 에러는 아직 뚜렷한 해결방법을 찾지 못한 상황입니다.

Quote:
그런데 알수없는 이유로 인하여 매일 root 소유의 apache 프로세스가 사라지고

맞습니다. 그런데 현재 제가 파악하기로 메모리 관련 에러는 php.ini에서 관련 항목을 수정한 뒤로 문제가 발생하지 않고 있어 아마 해결이 된 것이 아닌가 하고요. root소유의 apache프로세스가 없어져 버리는 것도 아직 php.ini를 수정한 이후에 발생하지 않았습니다.

그런데 한가지 문제가 더 있는것 같군요. 저만 그런건지 모르겠는데 사이트 접속 속도가 매우 느려진것 같습니다. 다른분들은 어떤가요?

godyang의 이미지

안녕하세요?

해당 에러 메시지는 PHP에서 나오는 것으로 보입니다.
libphp4.so를 뒤져보면 에러 메시지를 찾을 수 있습니다.

기본적으로 php.ini에는(최소한 데비안은) 8M까지의 메모리만 허용하고 있습니다.

일단 /etc/php4/php.ini를 수정해서 메모리를 증가시키는 것이 좋을 듯 합니다.

이것도 아니라면 extension문제일 수도 있습니다.
이럴땐 php에서 extension을 제거해 보면서 문제를 일으키는 라이브러리를 찾아야 합니다. 제 경우엔 sablot extension이 문제를 일으켜 제거해놓고 쓰고 있는 중입니다.

대충 제가 짐작가는 원인은 위 두가지네요.

number3의 이미지

Quote:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 184320 bytes) in /public/kss/WWW/script/newbbs/includes/page_header.php on line 388

다른 분들이 메모리 문제를 지적하셔서, 몇군데 소스를 뒤적뒤적 하다보니,
(zend API는 넘어려워요 ^^, 그래서 띄엄띄엄 봤는데)
우선 코드를 뒤져보니, ini 파일에 있는 php 옵션으로 메모리를 할당하면서 스타트 하는 거 같네요.
php가 apache가 fork() 될때 묻혀서 함께 올라가는 방식이 맞는지 정확히 모르겠지만, 만약 그렇다고 한다면, apache 가 올리는 메모리와 함께, php 모듈도 apache가 fork() 될때 지정된 메모리만큼 메모리를 잡아가는 것이 맞을 듯 하네요.

위의 가정이 맞다고 한다면, 올라가는 메모리의 사이즈를 늘려주면 해결책이 안될 거 같네요. 반대로 한 프로세스당 할당받는 메모리 사이즈를 줄여주는 것이 맞지 않을런지 하는 추측을 해 봅니다.

아마도 php 에서 그런 제한이 걸려 있는 것은 apache가 대부분 root 권한이기때문에 메모리를 할당받는데 제한이 없기 때문일 가능성이 농후해 보입니다.

그리고 한가지 더 고려할 만한 것은 apache가 스타트 되는 시점이 다른 데몬들보다 늦을 경우, 가령 /some_path/apache/bin/apachectl restart 하게 되면 메모리에 대해서 할당 받을 수 없는 문제가 생길 수 있을 거 같네요. 만약 이 부분이 문제가 된다면, 부팅 스크립트나 데몬들의 우선순위를 조정하시면 될 거 같고요. 이게 아마도 배고픈 철학자들의 만찬과도 같은 문제가 아닐런지, 그리고 회피하는 방법론으로 들어있지는 않은지..
- 그리고 실행된 php 코드의 사이즈의 바이너리 크기를 아신다면 최대크기 보다 조금 더 크게 잡는 것도 좋은 방법일 듯 합니다. apc 같은 것을 이용하면 알아볼 수 있을 거 같은데.. 쩝 컴팔이 안되서리..

마지막으로 어느 코드내에서 지정된 memory 이상을 사용하는 경우인데, 특히 for, while 루프를 돌면서 str .= str. "some string" 을 남발하는 경우인데, 이 경우에는 대부분 지정된 메모리 이상을 요청을 하면서 서버 자체를 맛이 가게 할 수 있습니다. 아마도 루프의 사이즈가 100 이상이고, str로 지정되는 것이 개당 1K 이상이면 그 현상을 보실 수 있습니다. 이게 문제라고 하면, 직접 뿌리는 코드로 수정하시면 됩니다. 중간에 flush() 도 해주고요..

워낙에 허접이라 띄엄띄엄 소스를 보면서 이해도 못하고 의견을 올립니다.
버그 퇴치를 위해서 돈 많이 벌면, 뿅뿅이 망치를 선물해드리죠.
뿅뿅이로 버그를 잡으세요 ^^

그리고 php 소스 코드는 lxr.php.net 에서 레퍼런싱해서 보세요..

즐거운 연휴가 시작될런지

단풍의 이미지

저도 예전에 이러한 이유로 고생한 적이 있는데
php.ini

extension=gdbm.so
extension=imap.so
extension=mysql.so
extension=ldap.so
extension=odbc.so

위 모듈을 제외한 템플릿 모듈을 붙여 쓴적이 있는데 갑자기 어느날부터 아파치 웹서버는 죽진 않았는데 CPU 풀로 차지 하더군요

결국에는 extension 모듈 하나씩 주석처리해서 테스트해 봤습니다.
이걸 해결 하는데 들어간 시간 2주 -.- 혹시나 해서 몇자 적어 봅니다.

sakura의 이미지

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)

여기서 메모리 limit 쪽 부분이 문제가 되서 그런게 아닐까요 -_-)a

허접스러움을 감추기 위해 오늘도 푸다다닥~*

choissi의 이미지

권순선 wrote:
어제밤에 google 선생님께 물어봤을 때 이 설정을 바꾸는 것에 대한 이야기도 많이 있었는데 대부분 32MB까지 늘려도 에러가 계속 생기더라...하길래 완전한 방법은 아니다 싶어서 적용은 하지 않았습니다만, 일단 적용해 봐서 손해볼 것은 없기에 기존의 8MB에서 16MB로 설정을 고쳐 둔 상태입니다. :)

만약 같은 문제가 또 생기면 바로 알려 주세요....

php에서 메모리 새는 부분이 있어서 일껍니다.
32메가로 늘려봐야 메모리 버그를 잡지 않는한 소용이 없겠죠..
kldp의 경우엔 16메가 정도면 되리라고 봅니다.

iis의 경우엔 이런 제한 사항이 없어서 하나의 asp파일에서 폭주해버리면
그 스크립트가 끝날때 까지 계속 메모리가 할당되어
서버가 죽어 버리기도 하지요 ㅋㅋ
(iis 5.0 까지만 해도 없었는데 6.0은 어떨지 모르겠네요.)

sunyzero wrote:
PS) 헉 바로 윗분이 올리셨군요. 부연설명ㅇ르 드리자면, 개별 스크립트 파싱에 사용하는 메모리제한양입니다. php 모듈을 뺀다고 해서 안나는 것은 아니더군요. 경험적으로 좀 크게 mysql에서 데이터 긁어오다보면 꼭 발생하는 문제더군요.

sunyzero님께서 개별 스크립트 파싱에서 사용되는 메모리라고 하셨는데
그렇지 않은듯 합니다. 제가 소스를 확인해보지는 않았지만
동작하는 형태를 보건데, 아파치 데몬 하나의 전체 메모리 limit인듯
싶네요..

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

권순선의 이미지

제기랄.... php.ini 를 수정하고 나서 한 며칠동안 잘 돌길래 문제가 해결된줄 알았더니 마찬가지로 root소유의 apache 프로세스가 죽어있어(원인은 모릅니다) 사이트가 또 맛이 가 있더군요. 왜 꼭 자리를 비우면 이런일이 생기는지.....

아무튼 어디선가 메모리가 새는것은 확실한것 같고요, 이런식이라면 php.ini에서 메모리설정을 아무리 늘려줘도 소용이 없겠지요? 삽질을 좀 해야할것 같네요. :?

망치의 이미지

시간은 좀 지났는데 어떻게 해결됐었는지 궁금하군요..

---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/

wkpark의 이미지

권순선 wrote:

Quote:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 184320 bytes) in /public/kss/WWW/script/newbbs/includes/page_header.php on line 388

이건 뭔가가... 무한루프 돌다가 메모리 부족으로 멎어버리는 것같군요. 트래픽 없는 서버인 경우도 php프로그램 잘못 짜면 저런 에러 종종 나더군요. 왜 무한루프를 도는지 이유를 알아야 할 듯..

다른이유라면 잘 모르겠군요..

온갖 참된 삶은 만남이다 --Martin Buber

specerx의 이미지

2005년 12월 04일 현재 KLDP BBS 접속시
아래와 같은 에러 메시지가 나오는 경우가 있군요.

phpBB : Critical Error 

Error creating new session

DEBUG MODE

INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('d2d0b2d843b4954492dc16e25966dd66', -1, 1133661348, 1133661348, 'd26c4326', 19, 0, 0)

Line : 224
File : sessions.php 

요즘도 KLDP BBS 연결이 안되는 경우가 종종 있습니다.

권순선의 이미지

mmim wrote:
2005년 12월 04일 현재 KLDP BBS 접속시
아래와 같은 에러 메시지가 나오는 경우가 있군요.
phpBB : Critical Error 

Error creating new session

DEBUG MODE

INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('d2d0b2d843b4954492dc16e25966dd66', -1, 1133661348, 1133661348, 'd26c4326', 19, 0, 0)

Line : 224
File : sessions.php 

요즘도 KLDP BBS 연결이 안되는 경우가 종종 있습니다.


수정한 내용을 자유게시판에 올려 두었습니다. 혼란을 막기 위해 이 글타래는 잠그겠습니다... 이어지는 내용은 자유게시판에 올려 주세요. :-)

댓글 달기