FastDFS性能调优 know how
FastDFS性能调优
本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号。
众所周知,软件性能调优不是一撮而就的事情,它是一个反复磨合的过程。下面介绍FastDFS 几个性能调优相关的重要参数,供大家参考。
1. 最大并发连接数
配置文件:tracker.conf 和 storage.conf
配置参数 | 配置描述 |
---|---|
max_connections | 缺省值:256,默认配置:1024 |
FastDFS 为一个连接分配一个 task buffer,为了提升分配效率,FastDFS 采用内存池的做法。FastDFS 老版本直接事先分配 max_connections 个 buffer,这个做法显然不是太合理,在 max_connections 设置过大的情况下太浪费内存。v5.04 对预分配采用增量方式,tracker 一次预分配 1024 个,storage 一次预分配 256 个。
task buffer 实际内存占用情况测算如下:
- 改进前: max_connections * buffer_size
- 改进后: 预分配buffer数 * buffer_size
使用 v5.04 及后续版本,可以根据实际需要将 max_connections 设置为一个较大的数值,比如 10240 或 65535 甚至更大。
友情提示: 此时需要将一个进程允许打开的最大文件数调大到超过max_connections,否则 FastDFS server 启动会报错。
2. 工作线程数
配置文件:tracker.conf 和 storage.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,比如 RAID5 或 RAID10,那么需要酌情加大读写线程数,这样才能最大程度地发挥磁盘 IO 能力。
4. storage同步延迟相关设置
配置文件:storage.conf
配置参数 | 配置描述 |
---|---|
sync_binlog_buff_interval | 将 binlog buffer 写入磁盘的时间间隔,单位为 秒,取值大于 0,缺省值为 60, 建议设置为 1 |
sync_wait_msec | 如果没有需要同步的文件,对 binlog 进行轮询的时间间隔,单位为 毫秒,取值大于 0,缺省值为 200,建议设置为 50。 |
sync_interval | 同步完一个文件后,休眠的毫秒数,缺省值为 0,通常设置为0 即可。 |
为了尽快完成文件同步,将上述3个参数适当调小即可。
友情提示: 上面给出的 建议值 基本就是最佳实践了。
总结
通常 FastDFS 自带配置文件 tracker.conf 和 storage.conf 中的默认配置就可以满足你的实际需求。如果你希望 FastDFS server 达到更好的运行效果,那就动手调整你的配置吧。
FastDFS性能调优 know how相关推荐
- hive性能调优实战pdf_Nginx 性能调优实战
来自:Linux社区 1.Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2.如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpui ...
- jvm调优工具_JVM性能调优监控工具jps、jstack、jmap、jhat、hprof使用详解
来自:ITeye博客, 作者:Josh_Persistence 链接:https://www.iteye.com/blog/josh-persistence-2161848 现实企业级Java应用开发 ...
- ELASTIC SEARCH 性能调优
ELASTICSEARCH 性能调优建议 创建索引调优 1.在创建索引的使用使用批量的方式导入到ES. 2.使用多线程的方式导入数据库. 3.增加默认刷新时间. 默认的刷新时间是1秒钟,这样会产生太多 ...
- OCM_第十二天课程:Section6 —》数据库性能调优_ 资源管理器/执行计划
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- Tomcat 和 JVM 的性能调优总结
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://rrd.me/enKbC Tomcat性能调优 ...
- JVM解读-性能调优实例
2019独角兽企业重金招聘Python工程师标准>>> JVM性能调优 1 堆设置调优 年轻代大小选择 响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选 ...
- Java性能调优、LinkedIn容器部署、阿里移动性能调优——首届APMCon精彩演讲先睹为快...
APMCon2016,在盛夏的8月等你. \\ 作为第一届APM垂直领域的技术大会,我们能拿出什么呈现给参会者? \\ 答案是,除了会场可以纳凉避暑之外,还有来自国内外顶级技术大拿带来的Java性能管 ...
- elasticsearch原理_ElasticSearch读写底层原理及性能调优
ES写入/查询底层原理 1. Elasticsearch写入数据流程 客户端随机选择一个ES集群中的节点,发送POST/PUT请求,被选择的节点为协调节点(coordinating node) 协调节 ...
- “性能调优”坑惨了几十万程序员
很多程序员觉得性能调优这块的JVM.Mysql不是什么大事,自己平时写代码写得好好的,不是很了解JVM好像也没什么的,认为得千万级甚至亿万级的大流量.大项目才用得上,其他一般场景根本用不到,直到遇见这 ...
最新文章
- UIPopoverController在ARC环境下用法注意
- 相关计算机专业的英语文献,英文文献及翻译计算机专业.doc
- 为什么我们从Angular 2迁移到Vue.js(为什么我们没有选择React)
- 牛客 - 建通道(思维)
- python操作SQL
- AcWing 503. 借教室
- 《A Point Set Generation Network for 3D Object Reconstruction from a Single Image》论文笔记_2D图像生成3D点云
- Netty使用kryo序列化传输对象
- win7系统激活(GPT分区)
- codevs 1044 拦截导弹
- 激活ltsb2016_WIN10 LTSB 2016电话激活步骤详解
- SCI收录期刊——航空航天学科
- html写的3d烟花带字幕,Three.js 3D烟花绽放动画
- 【网络】默认路由(路由黑洞,路由终结)
- iOS - MVC框架
- 支持向量机(SVM)、支持向量回归(SVR)
- Golang高性能日志库zap + lumberjack 日志切割组件详解
- 对计算机接口提出的新要求吗,2017年秋微机原理与接口技术
- 中国十大军工集团介绍
- 专利授权费用如何收取?