아파치의 DBCP를 이용해서 풀링을 구현하고 있습니다.
최대 커넥셔수를 200까지 늘려서 큐브리드역시 최고 연결수를 늘려주고합니다.
그래서 max_clients를 기본값인 50에서 200으로 늘리고 싶은데
200으로 늘리게 되면
There is not enough to stace space to run 400 threads
라는 에러메시지를 내면서 데이터베이스가 시작되지 않습니다.
어떻게 하면 max_clients값을 늘리수 있을까요?
stack size 와 관련이 있습니다. 즉, 접속가능한 사용자수를 늘리게 되면 그만큼의 쓰레드가 증가하고 쓰레드 관리를 위한 stack 이 더 필요하게 됩니다. 물론 할당가능한 메모리도 더 필요하게 됩니다.
linux 라면 ulimit -s unlimited 로 하신후 서버를 구동하면 구동이 될 수 있습니다. 그렇지 않다면 ulimid -d unlimited(대부분 이 값은 unlimited 임) 로 설정해 보시기 바랍니다. 그래도 않된다면 data_buffer_pages 의 값을 줄여보는 것도 방법이 됩니다. 그러나 이 값을 너무 줄이게 되면 성능에 영향을 미치게 되므로 조심하실 필요가 있습니다.
가장 좋은 방법은 OS가 64bit 라면 CUBRID 64bit 를 이용하시기 바랍니다. 물론 설정은(ulimit) 조정하실 필요가 있으나, 메모리 사용에 훨씬 자유로우므로 64bit의 사용을 검토해 보시는 것도 좋겠습니다.
참고로 32bit 는 2G까지의 메모리를 사용할 수 있습니다.