서버 프로그래밍시 리소스가 모자랄때(cpu,ram) 해결 방안 어떤 방법들이 있을까요.
글쓴이: s97083 / 작성시간: 금, 2015/05/29 - 3:26오후
안녕하세요
저도 사실은 꽤 연차가 있는 개발자인데... 막상 리소스 관리가 필요한
프로그램 개발시에 cpu 점유율 이라던가 리소스 관리하는 해결방안을 물어보면 명확한 답변을
줄 수 가 없더라고요. 멀티 쓰레딩을 쓴다... 세모포어를 쓴다 이런건 그냥 서버 개발 자체가
이런 기술을 쓰는거 같고
먼가 특별한 기법이라던가 해결방안이 있을까요? 전엔 하드웨어를 늘린다 라고 했더니 싫어하더라고요.
그런데 막상 미디어 포맷을 변경하는 트랜스코더 개발시 클라이언트 하나가 거의 점유율 90%를 잡는데
어떤 방법을 시도해야 할지 방법이 없었습니다.
Forums:
CPU 점유율을 낮추는 거라면, ulimit -t 를
CPU 점유율을 낮추는 거라면, ulimit -t 를 이용하여 CPU 스케쥴링 타임을 확 줄여서 클라이언트 프로세스를 실행하면 어떨까요?
그리고 SIGXCPU 를 등록해서 sched_yield를 자주 호출하는 방향으로 하면 되지 않을까 싶습니다.
클라이언트는 getrlimit 을 이용해서 RLIMIT_CPU 를 확인할 수 있으니 적절하게 쉬도록 코딩할 수도 있을 것 같습니다.
만약 클라이언트 소스가 수정이 불가능하다면 그냥 nice 값을 높여서 스케쥴링을 낮추는 것도 해 봄직한데....
저도 말로만 해보네요.. ㅎㅎ.
---
http://coolengineer.com
댓글 달기