아무 생각 없이 요청 당 고루틴 돌렸더니 잘 안돌아가서 생각해 봤더니 고루틴당 스택 8KB * 10만 = 초당 8기가 메모리 할당/해제라는 기가막힌 결과가;; Go에서 RIO나 io_uring 같은거 쓸 수 있나욤?
댓글 2
io_uring은 나도 안써봐서 모르겠는데 RIO랑 하려는건 같으니까 (pre-registered buffer이랑 RQ, CQ 분리 등) RIO랑 비슷할거 같은데
보통 이런 api는 million 단위 pps에서나 고려해볼만한데 패킷하나당 몇바이트나 하길래 100k pps에서 RIO나 io_uring을 생각하고있음?
Go는 아예 모르겠지만 지금 내부에서 epoll이나 iocp로 돌아가는거 아님? 이걸로도 떡치고 남을거같은데.
io_uring은 나도 안써봐서 모르겠는데 RIO랑 하려는건 같으니까 (pre-registered buffer이랑 RQ, CQ 분리 등) RIO랑 비슷할거 같은데 보통 이런 api는 million 단위 pps에서나 고려해볼만한데 패킷하나당 몇바이트나 하길래 100k pps에서 RIO나 io_uring을 생각하고있음? Go는 아예 모르겠지만 지금 내부에서 epoll이나 iocp로 돌아가는거 아님? 이걸로도 떡치고 남을거같은데.
스레드 풀 + 스레드 당 태스크들을 얹어서 관리하자