많은 사용자가 붙는 서버를 만들 일이 많지 않았지만, 꽤 괜찮은 내용을 찾았다.
The epoll facility is available in the Linux 2.6, and newer, kernels. The new epoll-based SelectorProvider implementation is more scalable than the traditional poll-based SelectorProvider implementation when there are thousands of SelectableChannels registered with a Selector.
Sun 문서에는 위처럼 너무 간단하게 나왔다.
리눅스 2.6 커널일 경우 디폴트로 poll 이 아닌 epoll 을 써서 확장성이 더 좋다. 이 뿐.
그래서 좀 더 자세한 글을 찾아보려 구글님께 자문을 구해보았다.
Alan Bateman 씨의 포스트가 검색되었다.
요샌 다들 커널 2.6을 쓰고 있을테니 대부분의 서버 프로그래머들이 즐거워할 일인듯 하다.
정말 어느정도의 차이가 나는지 테스트를 해보려면 다음과 같이 강제로 poll을 쓰도록 switching 할 수 있다.
System.setProperty("java.nio.channels.spi.SelectorProvider", "sun.nio.ch.PollSelectorProvider");
커널 2.4에서도 epoll을 쓸 수 있는 패치가 있다지만, 이녀석을 감지하진 못한단다.
mustang 깔란 얘기다. 근데 j2se 1.5.0_09 에서도 이 기능이 포함되었다고 한다.
대신 default로 epoll을 사용하지 않기 때문에
System.setProperty("java.nio.channels.spi.SelectorProvider", "sun.nio.ch.EPollSelectorProvider");
를 해주어 수동으로 켜 주어야만 한다.
이 포스트에 달린 코멘트 임팩트가 아주 제대로다.
works great for me. With b59, on one of our perf tests, I am seeing system CPU go down from 40% with JDK 1.5.0_05 to 6-7% system in b59 with 10000 connections.
Posted by anandp on November 05, 2005 at 09:06 AM PST #
6배의 성능 향상!
Comments
12 thoughts shared
rath
충격적인 메서드 이름 ThreadMXBean.findDeadlockedThreads -_-
세상 참 좋아졌네요
rath
jrunscript 엔터치고 감동 받음. 이제 beanshell 안써도 되나
pistos
아앗... 2.6커널에서 디폴트로 epoll 아니었던거야??? 젠장..;;
pistos
아.. 2.4에서의 얘기군아... 젠장.. 코멘트 삭제가 안되!!
윤종현
음.. epoll을 쓰게 할 수도 있군요;;; 예전 팀의 서버 개발자는 jvm에서 epoll을 nio로 쓸 수 있게 직접 고친다고 삽질 참 많이 했었는데. -0-
윤종현
근데 데드락 스레드를 찾을 수 있는 함수가 있다?... 좀 잇힝;;; -0-
rath
pistos: 코멘트 삭제 기능을 만들어 넣어야겠네요 --;
rath
윤종현: 미리 그런 시도를 해보는 행위가 대단한 것 같아요. ㅎㅎ 데드락 스레드 찾는 함수는 꼭 테스트해보고 다시 결과 말씀드리지요~
rath
윤종현: 오~ 테스트해보니 정말 데드락 스레드를 찾아주는군요 ++ 문서를 보니 trying acquire 스레드중 서로를 마주보고 있는 것들을 골라주는 거라네요.. 들어보니 이론상 구현하기는 어렵지 않은것 같은데, 테스트 코드를 돌리며 제일 난해했던게.. 찾긴 찾았는데, 풀어줄 방법이 애매했다는 --;;;
rath
지금 다시 읽어보니 스펀지에나 나올법한 말이네요. 네이버 검색창에다.. "데드락 스레드를 찾을 수 있는 함수가 있다???" 쳐봐야할 것 같아요 --;
rath
아름다운 세상~
Continue Reading
Discover more thoughts and insights
Google Ads
제 홈피에도 구글 광고를 게시하기 시작했습니다. -ㅅ- 다른 광고처럼 이미지도 안뜨고, 가끔 제가 필요로 하는 광고 내용까지 뜨네요. 흐흐 -ㅁ- 모두의 건강을 위해 정말 궁금한 광고만
술 취한 Claude Code 길들이기
최근 시작한 외주 이야기. 이 일은 오픈소스 프로젝트에 필요 없는 기능 뜯어내고 K 스타일로 새로 꾸미는 그런 작업이다. 그 오픈소스는 백엔드가 Go 4만, 프론트 리액트 코드가 4만 줄인 스타 수 10k 정도의
T-Mobile USB 모뎀의 진실
7월 25일에 런던에 입국한 나, shared room을 빌려 256Byte/s 의 인터넷 속도를 즐기다가. 8월 15일 광복절을 맞이하야 -\_- 새 집으로 이사를 왔다. 4층 건물의 꼭대기층이라 천장이 아주