我有以下基于NFS的存储设置:
计算节点是Linux。NFS服务器是Solaris。
一个不那么重要的用户在计算节点的子集上运行一组读取密集型作业。结果,整个计算节点组变得非常慢(ls
块30秒)。我能够追踪到专用的NFS服务器正在达到san的读取吞吐量的极限。
如何实现将NFS带宽限制在节点、进程或用户的服务质量(QoS)?
发布于 2014-03-02 16:53:05
我不确定NFS是否可以与集群中的DDOS相抗衡。如果您真的需要这样做,使用其他方法访问持久存储将更容易。
考虑到您的设置,我建议在集群引擎级别上执行"QoS“。
配置一个资源"io_heavy“,限制为"10”,并使您的用户为IO繁重的作业请求"1“。这样,由I/O绑定的不超过10个作业将同时运行。您的NFS不会崩溃,集群的其余部分将继续用于CPU绑定的任务。
还应该向节点添加划痕磁盘。这些数据可以保存临时数据,而这些数据实际上并不需要转到NFS。它还有助于提供这里常用的“参考数据”。
我假设您的Solaris NFS服务器使用ZFS。用尽可能多的RAM填充服务器。将SSD添加到用作ZFS缓存磁盘的服务器上。这两件事都减少了你的流量。
发布于 2011-02-02 00:22:14
QOS通常用于对某些类型的网络流给予优先级。你不能隔离和限制网络交换机上的用户端口吗?还是把他/她放在一个单独的VLAN里?还是将端口的数据速率限制在100 rate?
除此之外,我不知道任何NFS带宽受用户名或MAC地址的限制。也许您的NFS服务器可以选择一种更分布式的方式来服务文件请求?
开箱即用:将读取密集型文件移近用户,并运行备份/rsync进程将更新的数据写回NAS?
这些都是什么样的读书密集型工作?
https://serverfault.com/questions/228973
复制相似问题