Skip to content

Latest commit

 

History

History
69 lines (33 loc) · 1.27 KB

tuning.md

File metadata and controls

69 lines (33 loc) · 1.27 KB

性能优化相关

premature optimization is the root of all evil

过早优化是万恶之源

优化方向

CPU

  • 使用 CGroup 限制进程资源使用范围

  • 绑定

  • 独占

  • 优先级

  • NUMA

  • irqbalance 中断负载均衡

内存

TODO

硬盘

TODO

Linux 中的 Buffer 和 Cache

Buffer:

  • 起到缓存作用

  • 针对的对象:

    • 即将写入磁盘的数据

    • 磁盘读取的数据

Cache:

  • 起到缓存作用

  • 针对的对象:

    • 文件读取数据的页

    • 文件的页缓存

编程方面

优先使用 C 标准库函数,而不是直接使用系统调用。

比如 fopen 、fread 等标准库函数,而不是直接使用 open、read 系统调用。

因为这些函数都会利用标准库里的缓存,通过缓存能有效的减少磁盘的操作。

概括

  • 当面对需要优化多个方面时,应该优先优化瓶颈点(或者优化后带来性能收益是最大的),因为这类问题一旦解决了,那么其它方面的优化可能就不需要了。

  • 选择优化方法时也要考虑这个方法会不会带来副作用,比如,某个指标虽然被优化掉了,但是是以牺牲复杂度以及稳定性为代价的,这样的优化就需要十分的谨慎对待。