2020-10-17

减少系统调用

  • buffer
  • 合并

减少不必要的进程唤醒/切换

  • 避免惊群或无效唤醒:

    • pthread_cond_signal 的问题, 以及替代方法
    • epoll_wait 边沿触发
  • worker数量, 通常是指进程数, 需要 <= vCPU数

  • golang 协程 (当前笔者不熟悉golang)

数据分片

  • map reduce
  • RAID0

流水线

  • 多级流水线, 拉动式生产

fpart(apt-get install fpart) live mode 实现拉动式生产.

多级流水线, 在用户态, 对应的是 分布在多核上的线程/进程, 需要考虑 消息传递的损耗 和 避免单道工序耗时过长.

  • 流量控制, congestion control

减少数据拷贝

调研新的系统调用/新的方法

  • io_uring
  • eBPF

本文地址: https://awakening-fong.github.io/posts/other/optimize_user_space

转载请注明出处: https://awakening-fong.github.io


若无法评论, 请打开JavaScript, 并通过proxy.


blog comments powered by Disqus