이전 보안회사에 재직할 때, 개발한 솔루션-서버-을 행정기관에 납품한 경우가 있었다.
이 행정기관은 내부 관리 서비스와 함께 대민 서비스가 주요한 서비스이기도 했다.
서비스를 오픈하고 시간이 흐르자 장애가 발생했었다.
세션을 유지하고 클릭하는, 서비스 요청하는 동시 접속자가 일시적을 증가하는 경우에 다음과 같은 에러가 발생하곤 했었다.

java.net.SocketException: Too many open files
         at java.net.PlainSocketImpl.socketAccept(Native Method)
         at java.net.PlainSocketImpl.socketAccept(Compiled Code)
         at java.net.PlainSocketImpl.accept(Compiled Code)
         at java.net.ServerSocket.implAccept(Compiled Code)
         at java.net.ServerSocket.accept(Compiled Code)
         at org.apache.tomcat.service.PoolTcpEndpoint.acceptSocket(Compiled Code)
         at org.apache.tomcat.service.TcpWorkerThread.run(Compiled Code)
         at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(Compiled Code)
         at java.lang.Thread.run(Compiled Code)

솔루션 자체의 내부 기능을 보아 파일 I/O 쪽 액세스에 무리가 없다고 판단하고 있어서인지 이래저래 고심을 했었는데, 이 액세스 가능여부에 socket 부분까지 포함된다는-로그에도 이미 있지만- 사실에 그 순간은 "이런! 경우가 다 있나~" 하고 무릎을 치면서, 보는 그대로를 믿지 않는 자신을 탓하기도 했었다.

솔루션이 생성된 특정 계정으로 프로세스가 구동될 경우, O/S 설정값에 영향을 받는다는 것도 그때 처음 접했던 것 같다.

당시, 솔루션이 설치된 O/S는, HP-UX 11.xxi 64bit itanium 시리즈였던 것으로 기억된다.(itanuim 64bit 프로세스에 기반한 시스템에서 장애를 지금도 많이 겪는다. ㅡ,.ㅡa)

[grim@www /]$ ulimit -a
core file size (blocks)  0
data seg size (kbytes)   unlimited
file size (blocks)       unlimited
max memory size (kbytes) unlimited
stack size (kbytes)      8192
cpu time (seconds)       unlimited
max user processes       2048
pipe size (512 bytes)    8
open files               1024
virtual memory (kbytes)  2105343

로그인 쉘에서 위와 같이 입력할 경우, 해당 결과를 보면 open files 항목이 보일텐데, 다중 접속자를 감안 시스템 솔루션을 개발하는데에는 이 부분의 기본값이 솔루션 기능의 lock 역할을 할 수도 있다.

이때는, 권한이 있는 사용자 쉘에서

[grim@www /]$ ulimit -n 2048

처럼 입력하여 여유를 주면 되겠다.

2007/01/16 14:23 2007/01/16 14:23
Posted by 선물

트랙백 보낼 주소 : http://freestory.net/tc/trackback/61


BLOG main image
내 안의 세상과 선물들을 펼쳐보이다. by 선물
우리가 함께 한 날로부터
2054 ...
내 생명이 온 날로부터
814 번째 날.

공지사항

카테고리

전체 (223)
여행 (6)
NAS (12)
Android (5)
JAVA (8)
FLEX (1)
모바일 (3)
Web (6)
IPTV (7)
컴퓨터기초 (1)
미투데이 (73)
잡념 (71)
푸념 (4)
문화생활 (2)
Mac (2)

글 보관함

달력

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
Total : 1164688
Today : 15 Yesterday : 67