在极限读场景下,对于客户端的网络监控如图:

在极限写场景下,对于NAS1网关的网络监控如图:

在极限写场景下,对于NAS2网关的网络监控如图:

在极限写场景下,对于客户端的网络监控如图:

在极限混合读写场景下,对于NAS1网关的网络监控如图:

在极限混合读写场景下,对于NAS2网关的网络监控如图:

在极限混合读写场景下,对于客户端的网络监控如图:

综合以上的测试结果,可以总结出下表:

Linux Samba NAS网关测试数据

单NAS网关

100Mb/s负载性能记录

NAS网关资源占用

稳定读

稳定写

稳定读

稳定写

CPU空闲

内存空闲

网卡占用

CPU空闲

内存空闲

网卡占用

1*3+3*2

4*3

96.70%

10G

127MB/S

85.70%

10G

180MB/S

50Mb/s负载性能记录

NAS网关资源占用

稳定读

稳定写

稳定读

稳定写

CPU空闲

内存空闲

网卡占用

CPU空闲

内存空闲

网卡占用

3*3+1*4

4*5

96.70%

10G

104MB/S

83.40%

10G

160MB/S

极限性能记录

NAS网关资源占用

极限读

极限写

极限读

极限写

CPU空闲

内存空闲

网卡占用

CPU空闲

内存空闲

网卡占用

4*1

4*1

94.50%

10G

195MB/S

79.60%

10G

201MB/S

极限混合读写

极限混合读写

CPU空闲

内存空闲

网卡占用

7读3写

86.40%

11G

134MB/S

双NAS网关

100Mb/s负载性能记录

NAS网关资源占用

稳定读

稳定写

稳定读

稳定写

CPU空闲

内存空闲

网卡占用

CPU空闲

内存空闲

网卡占用

NAS1

4*1

4*2

88.00%

10G

54MB/S

88.30%

10G

113MB/S

NAS2

2*1

4*2

87.10%

4.5G

32MB/S

87.80%

4.5G

108MB/S

 

50Mb/s负载性能记录

NAS网关资源占用

稳定读

稳定写

稳定读

稳定写

CPU空闲

内存空闲

网卡占用

CPU空闲

内存空闲

网卡占用

NAS1

4*2

4*4

98.10%

10G

57MB/S

88.30%

10G

109MB/S

NAS2

4*2

4*4

98.50%

4.5G

64MB/S

85.20%

4.5G

111MB/S

 

极限性能记录

NAS网关资源占用

极限读

极限写

极限读

极限写

CPU空闲

内存空闲

网卡占用

CPU空闲

内存空闲

网卡占用

NAS1

4*1

4*1

97.80%

4.5G

73MB/S

84.60%

4.5G

161MB/S

NAS2

4*1

4*1

97.60%

10G

92MB/S

90.80%

10G

136MB/S

 

极限混合读写

极限混合读写

CPU空闲

内存空闲

网卡占用

NAS1

7读3写

96.70%

10G

74MB/S

NAS2

7读3写

93.20%

4.5G

52MB/S

附录1:操作系统调优

对于操作系统,为了保证自身的运行稳定性和安全性,其相关的网络默认配置和系统内核默认配置都不足以达到Samba使用的最佳性能,以下为调优的参数内容:

  • /proc/sys/net/core/rmem_default 定义默认的接收窗口大小;
  • /proc/sys/net/core/rmem_max 定义接收窗口的最大大小;
  • /proc/sys/net/core/wmem_default 定义默认的发送窗口大小;
  • /proc/sys/net/core/wmem_max 定义发送窗口的最大大小;
  • /proc/sys/net/ipv4/tcp_window_scaling  启用 RFC 1323 定义的 window scaling;要支持超过 64KB 的窗口,必须启用该值。
  • /proc/sys/net/ipv4/tcp_sack 启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用。
  • /proc/sys/net/ipv4/tcp_fack 启用转发应答(Forward Acknowledgment),这可以进行有选择应答(SACK)从而减少拥塞情况的发生;这个选项也应该启用。
  • /proc/sys/net/ipv4/tcp_timestamps 以一种比重发超时更精确的方法来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。
  • /proc/sys/net/ipv4/tcp_mem 确定 TCP 栈应该如何反映内存使用;
  • /proc/sys/net/ipv4/tcp_wmem 为自动调优定义每个 socket 使用的内存;
  • /proc/sys/net/ipv4/tcp_rmem 与 tcp_wmem 类似,不过它表示的是为自动调优所使用的接收缓冲区的值。
  • /proc/sys/net/ipv4/tcp_low_latency 允许 TCP/IP 栈适应在高吞吐量情况下低延时的情况;这个选项应该禁用。
  • /proc/sys/net/ipv4/tcp_westwood 启用发送者端的拥塞控制算法,它可以维护对吞吐量的评估,并试图对带宽的整体利用情况进行优化;对于 WAN 通信来说应该启用这个选项。
  • /proc/sys/net/ipv4/tcp_bic 为快速长距离网络启用 Binary Increase Congestion;这样可以更好地利用以 GB 速度进行操作的链接;对于 WAN 通信应该启用这个选项。

根据上述描述,本文中采用的网络参数和系统内核参数如下:

kernel.shmall = 2097152

kernel.shmmax = 12884901888

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

附录2:Samba调优

Samba服务具有很多有关于传输性能的隐藏参数,参考官方手册,得到以下几个比较关键的参数:

  • follow symlinks  此参数在Windows平台不支持这种符号连接,我也不需要在共享里有这个东西,所以关闭
  • wide links,关闭此参数
  • oplocks和locking这两个决定samba是否对文件进行lock测试,如果一个用户以write方式打开了这个文件,那么其它用户就不能再以write打开,这两个东西很费内存,也同样会降低samba的性能。 另外,我有很多个share,其中只有两个是所有人都可以写的,其它的都只有一个用户能写,对于后者,不需要打开这个,因为共享设计就是别人无法写。 那么就在global里面把这几个和lock有关的参数关掉,在那两个所有人可以写的share再打开。

# Some otherperformace tuning options
# disable links and symbol links
    follow symlinks = no
    wide links = no
    strict locking = no
    fake oplocks = yes
    oplocks = no

附录3:SNFS调优

使用文件系统自带的mount命令进行挂载时。文件系统占用操作系统的内存使用空间有限,由于此次测试的服务器配置较高,所以将内存使用调高。使用如下命令mount

mount.cvfs -t cvfs -o cachebufsize=524288snfs1 /stornext/snfs1

基于Linux的Samba开源共享解决方案测试(六)的更多相关文章

  1. 基于Linux的Samba开源共享解决方案测试(一)

    转自http://blog.csdn.net/u013394982/article/details/17914429 Linux操作系统 Linux是一类Unix计算机操作系统的统称.Linux操作系 ...

  2. 基于Linux的Samba开源共享解决方案测试(五)

    对于客户端的网络监控如图: 双NAS网关50Mb码率视音频文件的稳定写测试结果如下: 100Mb/s负载性能记录 NAS网关资源占用 稳定写 稳定写 CPU空闲 内存空闲 网卡占用 NAS1 16个稳 ...

  3. 基于Linux的Samba开源共享解决方案测试(四)

    对于客户端的网络监控如图: 双NAS网关100Mb码率视音频文件的稳定读测试结果如下: 100Mb/s负载性能记录 NAS网关资源占用 稳定写 稳定写 CPU空闲 内存空闲 网卡占用 NAS1 8个稳 ...

  4. 基于Linux的Samba开源共享解决方案测试(三)

    在极限写场景下,对于网关的网络监控如图: 在极限写场景下,对于网关的网络监控如图: 在极限混合读写场景下,对于网关的网络监控如图: 在极限混合读写场景下,对于客户端的网络监控如图: 双NAS网关100 ...

  5. 基于Linux的Samba开源共享解决方案测试(二)

    单NAS网关50Mb码率视音频文件的稳定读测试结果如下: 50Mb/s负载性能记录 NAS网关资源占用 稳定读 稳定读 CPU空闲 内存空闲 网卡占用 13个稳定流 96.70% 10G 104MB/ ...

  6. 基于Linux系统Samba服务器的部署

    1.基础信息 用 Internet 文件系统 CIFS(Common Internet File System)是适用于MicrosoftWindows 服务器和客户端的标准文件和打印机共享系统信息块 ...

  7. [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名

    Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...

  8. windows怎么访问linux的samba共享目录

    windows怎么访问linux的samba共享目录 听语音 原创 | 浏览:6976 | 更新:2018-07-31 13:20 | 标签:LINUX WINDOWS 1 2 3 4 5 6 7 分 ...

  9. linux系统内SAMBA共享问题

    最近将项目迁移到了公司服务器上,以后客户端调试和服务端开发都要去链接这台服务器,但是开发就需要调试,也需要log信息,同一局域网内,如何链接服务器并随时查看服务器上的log信息呢? 今天搞了一下,把步 ...

随机推荐

  1. UI基础:UILabel.UIFont 分类: iOS学习-UI 2015-07-01 19:38 107人阅读 评论(0) 收藏

    UILabel:标签 继承自UIView ,在UIView基础上扩充了显示文本的功能.(文本框) UILabel的使用步骤 1.创建控件 UILabel *aLabel=[[UILabel alloc ...

  2. OC基础知识总结 分类: ios学习 OC 2015-06-26 17:58 58人阅读 评论(0) 收藏

    //OC: Objective-C, 面向对象的C语言 //OC与C的区别 //1.OC是C的超集, C语言的所有语法都可以在OC中使用 //2.OC是面向对象 //3.OC是一门运行时语言 //4. ...

  3. JavaWeb中监听器+过滤器+拦截器区别、配置和实际应用

    JavaWeb中监听器+过滤器+拦截器区别.配置和实际应用 1.前沿上一篇文章提到在web.xml中各个元素的执行顺序是这样的,context-param-->listener-->fil ...

  4. 9.1 UDP协议

    TCP 协议是面向连接的基于流的,可靠的传输服务.UDP是无连接的,基于数据报的,不可靠的传输服务,UDP没有粘包,但是会产生丢包. UDP模型如下: 可以看到,服务器端不用listen,也不用acc ...

  5. 轻松玩转AI 与PDF文件的转化(完美解决字体问题)

    经过漫长而坚苦卓绝的研究查阅了网上无数资料下载了众多相关软件进行试验终于,找到搞定PDF文件的方便并且有效的办法PDF文件!你这个魔鬼!退去吧!!!! 难点一: 如何修改客户常常会提供不知道从哪里搞来 ...

  6. Shader的函数公式以及使用的场景

    Shader 是干什么的? 它的作用可以先简单理解为对屏幕上的物体,进行颜色处理. 而大家都知道,所有计算机,处理颜色的当然是显卡,也就是 GPU . 所以我们写 Shader 的目的就是告诉 GPU ...

  7. HDU 1176:免费馅饼(DP,自认为很详细的解释)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. HDU 2111:Saving HDU(贪心)

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  9. Immutable集合

    转自:https://blog.csdn.net/michaellufhl/article/details/6314333 大家都知道JDK提供了Collections.UnmodifiableLis ...

  10. socat 简单试用

    socat的主要特点就是在两个数据流之间建立通道:且支持众多协议和链接方式: ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socke ...