FastDFS 集群和配置优化

FastDFS 集群和配置优化

FastDFS集群架构设置

3台CentOS 7 虚拟机
3个tracker 3个storage

192.168.181.135 192.168.181.134 192.168.181.128
tracker tracker tracker
storage(group1) storage(group1) storage(group2)
nginx nginx nginx

全部按单个的配置
https://blog.csdn.net/ko0491/article/details/108884243

FastDFS集群架构详细配置

vim tracker.conf

配置tracker集群 三台相同

vim /etc/fdfs/tracker.conf

store_lookup=0 # 0是轮询,1是指定组,2是剩余存储空间多的group优先

这里为了测试

vim storage.conf

    • 135
group_name=group1
tracker_server=192.168.181.135:22122
tracker_server=192.168.181.134:22122
tracker_server=192.168.181.128:22122
  • 134
group_name=group1
tracker_server=192.168.181.135:22122
tracker_server=192.168.181.134:22122
tracker_server=192.168.181.128:22122
  • 128
group_name=group2
tracker_server=192.168.181.135:22122
tracker_server=192.168.181.134:22122
tracker_server=192.168.181.128:22122
  • 重启
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

在这里插入图片描述

查看storage的日志 查看tracker集群信息


cat /home/fastdfs/logs/storaged.log

在这里插入图片描述

访问FastDFS时 可以把Tracker 理解成对等的,但实际底层多个Tracker时在运行过程中会选择其中一个
作为Leader,由该Leader执行一些唯一性的操作。在早期版本中Tracker-Leader有两个作用,分别
是:为新加入的Storage分配一个源Storage;为开启合并存储的Group选择Trunk-Server。但是在最新
的版本中实际上只有第二个作用,也就是选择Trunk-Server。
查看之后 如果连接不上 注意防火墙
systemctl stop firewalld

在这里插入图片描述
在这里插入图片描述

查看存储集群信息

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试上传

vim /etc/fdfs/client.conf
tracker_server=192.168.181.135:22122
tracker_server=192.168.181.134:22122
tracker_server=192.168.181.128:22122

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf timg.jpg 
group1/M00/00/00/wKi1hl90XPGALTCfAABr19IkLmI859.jpg

改vi /etc/fdfs/mod_fastdfs.conf

tracker_server=192.168.181.135:22122
tracker_server=192.168.181.134:22122
tracker_server=192.168.181.128:22122
group_name=group1 #注意组名 如果是192.168.181.128-group2 则一定要改
  • 135 134
    在这里插入图片描述
  • 128
    在这里插入图片描述

配置nginx

vim /usr/local/nginx/conf/nginx.conf

#添加如下配置
server {
    
    
listen 8888;
server_name localhost;
location ~/group[0-9]/ {
    
    
ngx_fastdfs_module;
}
}

在这里插入图片描述

重载nginx

cd /usr/local/nginx/sbin/
./nginx -s reload

测试文件服务器

http://192.168.181.128:8888/group2/M00/00/00/wKi1gF90YRuAXbO2AADLXHbypa4109.png
http://192.168.181.135:8888/group2/M00/00/00/wKi1gF90YRuAXbO2AADLXHbypa4109.png
http://192.168.181.128:8888/group2/M00/00/00/wKi1gF90YRuAXbO2AADLXHbypa4109.png

FastDFS配置优化

最大连接数设置

配置文件:tracker.conf 和 storage.conf
在这里插入图片描述


参数名:max_connections
缺省值:256

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

#define ALLOC_CONNECTIONS_ONCE 1024
总的task buffer初始内存占用情况测算如下

改进前:max_connections * buffer_size
改进后:max_connections和预分配的连接中那个小 * buffer_size

使用v5.04及后续版本,可以根据实际需要将 max_connections 设置为一个较大的数值,比如 10240
甚至更大。
注意此时需要将一个进程允许打开的最大文件数调大到超过max_connections否则FastDFS server启动
会报错。
vi /etc/security/limits.conf 重启系统生效

  • soft nofile 65535
  • hard nofile 65535
    另外,对于32位系统,请注意使用到的内存不要超过3GB

工作线程数设置

配置文件:tracker.conf 和 storage.conf
参数名: work_threads
缺省值:4

说明:为了避免CPU上下文切换的开销,以及不必要的资源消耗,不建议将本参数设置得过大。为了发出

多个CPU的效能,系统中的线程数总和,应等于CPU总数。

对于tracker server,公式为:
work_threads + 1 = CPU数
对于storage,公式为:
work_threads + 1 + (disk_reader_threads + disk_writer_threads) *
store_path_count = CPU数

storage目录数设置

配置文件: storage.conf
参数名:subdir_count_per_path
缺省值:256
说明:FastDFS采用二级目录的做法,目录会在FastDFS初始化时自动创建。存储海量小文件,打开了trunk存储方式的情况下,建议将本参数适当改小,比如设置为32,此时存放文件的目录数为 32 * 32 =
1024。假如trunk文件大小采用缺省值64MB,磁盘空间为2TB,那么每个目录下存放的trunk文件数均值为:2TB/(1024 * 64MB) = 32个

storage磁盘读写线程设置

配置文件: storage.conf
参数名:disk_rw_separated:磁盘读写是否分离
参数名:disk_reader_threads:单个磁盘读线程数
参数名:disk_writer_threads:单个磁盘写线程数
如果磁盘读写混合,单个磁盘读写线程数为读线程数和写线程数之和,对于单盘挂载方式,磁盘读写线分别设置为 1即可
如果磁盘做了RAID,那么需要酌情加大读写线程数,这样才能最大程度地发挥磁盘性能

storage同步延迟相关设置

配置文件: storage.conf
参数名:sync_binlog_buff_interval:将binlog buffer写入磁盘的时间间隔,取值大于0,缺省值为60s
参数名:sync_wait_msec:如果没有需要同步的文件,对binlog进行轮询的时间间隔,取值大于0,缺省值为200ms

参数名: sync_interval:同步完一个文件后,休眠的毫秒数,缺省值为0
为了缩短文件同步时间,可以将上述3个参数适当调小即可

猜你喜欢

转载自blog.csdn.net/ko0491/article/details/108888445