CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): miso74 ()
날 짜 (Date): 2005년 1월 12일 수요일 오후 02시 57분 00초
제 목(Title): 솔라리스가 아파요.



어쩌다 보니 제목이 이상하게 되었는데, 저희 회사에 Solaris 7/8
로 운영 중인 시스템이 수 십대 있습니다. 위에서 돌아가는 어플은
전부 C로 자체 개발한 거구요. 외부에서 소켓으로 데이터를 받아서
서버 내부의 다른 프로세스에 메세지 큐를 통해 넘기고 그걸 받은
프로세스는 적당한 처리를 해서 다시 다른 프로세스에 넘깁니다.
문제는 어느 날 갑자기 어플이 작동을 안해서 보니, 메세지 큐가 꽉
차있고 시스템의 %sys 가 50% 이상을 잡아 먹고 있더군요. 보통은 20%이하.
외부로부터의 데이터는 다른 날과 그리 다른 것도 아니고 환경에 특별한
변화가 있다거나 하지도 않습니다. 제 추측으로는 msgrcv()가 특히 느려저서
큐에서 빼는 것 보다 넣는게 더 많아서 그런게 아닌가 생각 되는데요.
커널이 뭔가 일을 집중 하다 보니 메세지 큐 관련 처리도 느려지는
걸까요? prstat나 top 등을 보면 메세지 큐를 관련 프로세스가 CPU time의
대부분을 차지 하고 있고, 전체 시스템 콜 통계를 내보면, msgsys관련
시스템 콜이 대부분(전체의 40%이상)을 차지하고 처리 시간도 평상 시
보다 2배이상 걸리 더군요. 리부팅을 하면 증상은 해결되고요.
증상을 보인 시스템들은 어플리케이션들은 다른 종류지만 메세지 큐를 
사용하고 있다는 데에선 동일하고요. uptime이 200일 이상 된 넘들이 증상을
보입니다. 메세지 큐를 많이 만들어서 부하를 계속 줘도 이게 참 재현도
안되고 미치겠어요. OS 는 솔라리스 7,8 대중 없고 장비도 SE3500, SF4800등
다양합니다.
혹시 솔라리스도 정기적으로 리부팅을 해줘야 하는 건가요? 제 상식으론
그렇지 않을 거 같은데... 아니면 다른 짐작 가는 부분이라도 있으신가요?
조언 부탁 드립니다.
너무 질문이 장황해서 죄송 합니다.
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.