3
我有一個使用libev作爲事件循環的tcp服務器;新接受的套接字 我設置:使用libev的100%CPU使用率
ev_io_init(&conn->io, tcp_conn_on_event_cb, conn->fd, EV_READ | EV_WRITE);
當一個新的連接正在添加,我的服務器消耗整個CPU週期,我有100%的CPU使用率。我的程序調用所有的時間回調tcp_conn_on_event_cb設置爲EV_WRITE
static void tcp_conn_on_event_cb(ev_loop_t *loop, ev_io *ev, int revents)
revents的時候我讓
strace mybinary
我已經這樣:
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
....
有FO的解決方案請問這個問題?
感謝。這幫助了我。我支持計時器造成高CPU。但是這解決了我的問題。我爲新套接字設置了EV_READ和EV_WRITE。 – sunil
嗨;你的歡迎 –