最近,zmx 在他的 blog 裡發表了兩篇和 high capacity network server 的撰寫有關的文章,蠻值得參考的:

  • accept()able Strategies for Improving Web Server (論文簡報) - "By modifying each server's accept strategy, we improve the performance of the kernel-mode TUX server, the multithreaded Knot server and the event-driven μserver. Under two different workloads, we improve the throughput of these servers by as much as 19% – 36% for TUX, 0% – 32% for Knot, and 39% – 71% for the μserver. Interestingly, the performance improvements realized by the usermode server allow it to obtain performance that rivals an unmodified TUX server."
  • Comparing and Evaluating epoll, select, and poll (論文簡報) -
    • "即使是大量的連線,如果沒有 idle connection 的話,epoll() 能夠獲得的改進很小;"
    • "改進 epoll_ctl() 的 overhead,獲得的改進很小;"
    • "新增 epoll_ctlv() 把多個 epoll_ctl() 合併成一個 (就像 readv()/writev() ),獲得的改進很小。"