FastDFS性能调优 know how

Posted Huazie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastDFS性能调优 know how相关的知识,希望对你有一定的参考价值。

FastDFS性能调优

本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号。

众所周知,软件性能调优不是一撮而就的事情,它是一个反复磨合的过程。下面介绍FastDFS 几个性能调优相关的重要参数,供大家参考。

1. 最大并发连接数

配置文件:tracker.confstorage.conf

配置参数配置描述
max_connections缺省值:256,默认配置:1024

FastDFS 为一个连接分配一个 task buffer,为了提升分配效率,FastDFS 采用内存池的做法。FastDFS 老版本直接事先分配 max_connectionsbuffer,这个做法显然不是太合理,在 max_connections 设置过大的情况下太浪费内存。v5.04 对预分配采用增量方式,tracker 一次预分配 1024 个,storage 一次预分配 256 个。

task buffer 实际内存占用情况测算如下:

  • 改进前: max_connections * buffer_size
  • 改进后: 预分配buffer数 * buffer_size

使用 v5.04 及后续版本,可以根据实际需要将 max_connections 设置为一个较大的数值,比如 1024065535 甚至更大。

友情提示: 此时需要将一个进程允许打开的最大文件数调大到超过max_connections,否则 FastDFS server 启动会报错。

2. 工作线程数

配置文件:tracker.confstorage.conf

配置参数配置描述
work_threads缺省值:4

work threads 主要负责网络 IO 处理,一个线程通过 epoll 这样的机制处理若干个网络连接。work threads 理论上不会消耗太多 CPU,不建议配置得过大。

为了减少 CPU上下文切换的开销,以及不必要的资源消耗,不建议将本参数设置得过大。为了充分发挥出多个 CPU 的效能,系统中的线程数总和,建议不要超过 CPU 总数的 2 倍。

对于tracker server,公式为:

work_threads + 2 <= 2 * CPU总数

对于storage server,公式为:

work_threads + 1 + 本组storage server数 + (disk_reader_threads  + disk_writer_threads) * store_path_count  <= 2 * CPU总数

3. storage磁盘读写线程数

配置文件:storage.conf

配置参数配置描述
disk_rw_separated磁盘读写是否分离,缺省值为 true
disk_reader_threads单个磁盘文件读取线程数,缺省值为 1
disk_writer_threads单个磁盘文件写入线程数,缺省值为 1

注: 单个(或一个)磁盘对应storage server的一个store path。

如果磁盘读写混合,单个磁盘读写线程总数为读取线程数 与 写入线程数之和。

对于单盘挂载方式,磁盘读写线程分别设置为 1 即可。

如果磁盘做了 RAID,比如 RAID5RAID10,那么需要酌情加大读写线程数,这样才能最大程度地发挥磁盘 IO 能力。

4. storage同步延迟相关设置

配置文件:storage.conf

配置参数配置描述
sync_binlog_buff_intervalbinlog buffer 写入磁盘的时间间隔,单位为 ,取值大于 0,缺省值为 60建议设置为 1
sync_wait_msec如果没有需要同步的文件,对 binlog 进行轮询的时间间隔,单位为 毫秒,取值大于 0,缺省值为 200建议设置为 50
sync_interval同步完一个文件后,休眠的毫秒数,缺省值为 0通常设置为0 即可。

为了尽快完成文件同步,将上述3个参数适当调小即可。

友情提示: 上面给出的 建议值 基本就是最佳实践了。

总结

通常 FastDFS 自带配置文件 tracker.confstorage.conf 中的默认配置就可以满足你的实际需求。如果你希望 FastDFS server 达到更好的运行效果,那就动手调整你的配置吧。

以上是关于FastDFS性能调优 know how的主要内容,如果未能解决你的问题,请参考以下文章

But How Do It Know 关于人工智能的思考

How to stay calm when you know you'll be stressed

(27)How to stay calm when you know you'll be stressed

一篇让小白彻底搞懂性能调优!

性能调优概述,这是一篇最通俗易懂性能调优的总结!

性能调优概述,这是一篇最通俗易懂性能调优的总结!