poll에서 CPU를 100%먹는데 도데체 무슨 문제가??
글쓴이: mastercho / 작성시간: 토, 2003/08/16 - 12:40오후
프로그래밍상 문제는 없고요
gdb로 끝까지 추적해 봤는데
poll 부분에서 CPU를 엄청 먹네요
타임 아웃은 10으로 잡아줬고요
처음에는 괜찬은데... 몇번 자료를 주고 받다보면
처음할때는 안그러더니만 poll부분에서 엄청 CPU를 먹어되네요
[자료 1-2번 왔다갔다 하다가
순간적으로 그렇게 100%가 됩니다 1-2%먹던게...]
유저는 물론 2명 --;이고요
그냥 poll에서 timeout으로 왔다 갔다 로만 100% 먹는 기이한
현상이 벌어지고 있습니다
제 상식으로는 이해가 되질 않습니다 T_T
어찌된일일까요?
VMWare에서 돌려서 그런걸까요?
리눅스 버전은 한컴 리눅스3.0이고요
Forums:
그렇다면 poll 보단는 select를 사용하시는게 좋지 않을까요?원
그렇다면 poll 보단는 select를 사용하시는게 좋지 않을까요?
원래가 poll이라는 놈이 아무리 좋더라도 select 보다도 더 자원을 소모할거 같은데...-_-ㅋ
제가 어떤 은사님으로 부터 들은 poll과 select의 차이점을 말하자면...
이렇게 얘기를 듣고 나니깐 poll algorithm을 사용하기가 영...-_-ㅋ
피치 못할 사정이 아니면 select로 바꿔 보시는게...
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
헉...
이런 ~
당연히 문제가 없는줄 알았던 다른 쓰레드쪽에 문제가 있었네요
거기서 황당한 무한 루프가 있엇습니다 --;
이런 죄송~
부끄럽네요 :oops:
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스
poll에는 문제가 없습니다.
poll에는 문제가 없습니다. 오히려 poll()이 select()보다 CPU 점유율을
적게 사용합니다. 리눅스나 Solaris같은 OS에서는 select()가 poll() 로
래핑 되어 구현되어 있다고 들었습니다. 실제로 커널에서 select system call
소스를 확인해보시면 내부에는 sys_poll()을 호출 하는 것을 볼 수 있습니다.
아마도 프로그램내에 다른 문제가 있을 것 같습니다.
혹시 그 반대 아닌가요.?SELECT의 경우 디스크립터의 처음부터
혹시 그 반대 아닌가요.?
SELECT의 경우 디스크립터의 처음부터 끝(보통 MAX DESCRIPTOR)까지 확인을 하게 되고 POLL의 경우 발생된 이벤트(디스크립터)부분만 확인하는 것 말입니다. 오히려 POLL이 SELECT보다 효율적인 프로그래밍이 가능할것 같아서요.
지나가다 혹시나 해서요..
CPU 100의 경우 SELECT나 POLL을 쓰던 보통 무한 루프를 돌게 되는데 디스크립터 체크 부분보다는 그 안쪽에서 무한루프를 돌거나 IF STATEMENT문에서 조건에 걸리지 않는 부분에서 많이 발생했던것 같습니다. 제 경우에는요. 헤헤~!.. 디폴트 없는 SWITCH 그리고 ELSE 없는 IF문에 FOR나 WHILE의 무한 루프안에 자주 돌드라구요. 제가 만들때는요. 에휴 바보...
즐거운 하루 되세요.
개인적으로
select는.....poll보다 인터페이스나 편리성이 떨어지는거 같더라고요
아무리 연구해봐도....
랩퍼 클래스로 라이브러리화 하기도 poll이 더 편하고요 :D
저도 select는 poll 구현되었다고 들은거 같습니다만은 ...
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스
이참에 빌붙어서 더불어 궁금한게 생겼는데 혹시 kqueue linux는
이참에 빌붙어서 더불어 궁금한게 생겼는데 혹시 kqueue linux는 어떻게 진행되는지 아시는분 계시나요.? 누워있다가 다시 컴터키구 일어났네요. 갑자기 궁금해져가지구요.
여담 술마시는 일찍 자야 하는데 이노무 술버릇은 꼭 잠않자구 이상한짓 한데니깐요. 아 늘그니깐 정말..... 통일전망대 갔다가 카트 타는 초등학생들 보구 어찌나 부럽던지.....
kqeue가 리눅스에도 나오나요?
kqueue가 리눅스 커널에 포함되는지요??
아니 예정인지?
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스
댓글 달기