본문 바로가기

epoll3

동시접속 C10K SOCKET C10K = Concurrent(동시접속 1만명) 기법 select (max1024) => poll(max1024) => IOCP(MS-Windows 사실상 무제한) => LINUX(EPoll:Event Poll) => AIX(AIO) => 순서로 발전,적은 서버로 기존30~40대 커버가능 => 소스코드 빌드,릴리즈 플랫폼 => 클라우드서비스로 AWS,GCP 나혼자 꼰대처럼 (옛날 8090 처럼 부사수,사수처럼,잘 안갈켜주고) 그런시대는 지났고 올리고보니 (꼰대처럼 일부러 0바이트 소스코드 올린게 아닌데 필터링된것) 있어서, 다시 zip(집) 묶어서 올립니다. \ 2024. 4. 8.
EPOLL (EPOLLIN | EPOLLOUT | EPOLLET |EPOLLONESHOT) 고성능 소켓서버 실무 서버구현 저번에 예고한(?) 대로 대충,EPOLL로 윈도우즈의 IOCP 와 거의 비슷한 구조로 이벤트 기반 소켓을 구현하였으며, 여기에 DB POOL,또 클라이언트 요청업무(비즈니스로직)를 담당할 Worker Thread Pool,패킷 구분을 위한 Tokenizer,MYSQL을 이용하기 위한 인터페이스 Class 인 MySQLDB(윈도우즈에서 메신저 서버에서 사용하던 것을 뮤텍스 추가하여 코드 재활용),트레이스 로그,conf 환경설정 읽기,EPOLL은 IN,OUT(Incomming,Outgoing) 데이타를 모두 이벤트로 처리하였으며, Outgoing시에는 단일버퍼 큐에 모두 쌓아놓고 무조건 꺼내서 읽는것이 아니라,패킷 구조상 끊어서 보내야 하기 때문에, 좀더 구조적으로 하기위해 PostSend()에서 .. 2011. 2. 12.
고성능 네트워크 서버모델 서버엔진 개발기술.. 최근 근황, 자체 서비스 목적용으로, DuruBada (가칭) 서버,DuruBada ActiveX(추후 다른 기술로 대체),DuruBada Up/Down Controller Program 등등...웹하드 서버를 리눅스 에서 개발해야 한다. 전에 MS윈도우즈 플랫폼에서 메신저 만들던것은 MYSQL + 서버엔진은 IOCP + Thread Pool + DBPool 기술로 구현했었는데, (쓰레드간 임계영역 동기화는 CriticalSection으로 구현함) 전에 UNIX 기반에서 공공기관에 개발해 납품했던 ocsmgr 메니저 서버는 동접이 약 1000명에 업무별 쓰레드 3-4개에서 poll 방식으로 구현 했던것이었고 금결원과 1대1 커넥션 서비스 납품했던 appc 데몬 서버도 역시 업무별 쓰레드 3~4개 로 ac.. 2011. 1. 15.