如何在服务器端对 Samba 事务进行排队

如何在服务器端对 Samba 事务进行排队

我们有一个 20TB 的 Samba 服务器,配有 2x10TB RAID5 至 2TB 硬盘。有很多连接,这会导致大量的寻道开销。我的想法是让客户端排队,而客户端却无法识别它。

是否有可能在 samba 和硬盘之间插入一个基于文件的公平调度程序?

答案1

除非你运行的是旧内核(即 2.6.18 之前的版本,2017 年 9 月发布)。2006)或者已经做了一些自定义的事情,你已经在运行一个“samba 和硬盘之间的公平排队器”——Linux 内核运行CFQ默认情况下。这是一个相当不错的排队算法,适用于各种工作负载和硬件配置(我们在使用 BBU 硬件写缓存的系统上将其关闭,并用 noop 替换,因为我们使用的 RAID 控制器知道如何比内核更好地处理 I/O,但这是一个非常小众的极端情况——CFQ 对 99% 的部署系统来说效果更好)。

与性能更好的存储层带来的好处相比,不同排队算法带来的好处微不足道。RAID5 不是为了速度而构建的(对于大容量驱动器,它也不是为了数据安全而构建的),2TB(即 7200rpm SATA)HDD 不是为了速度而构建的……基本上,您问的是“我的 93 年旅行车装满了面粉袋,我应该使用什么轮胎才能赢得印地 500?”

相关内容