• 基于Linux的Samba开源共享解决方案测试(六)


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

    在极限写场景下,对于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

  • 相关阅读:
    序列
    笔算开方法
    笔算开方法
    【AFO】闷声发大财
    P1092 虫食算[搜索]
    数据结构总结
    P1486 [NOI2004]郁闷的出纳员[权值线段树]
    P1850 换教室[dp+期望]
    P4281 [AHOI2008]紧急集合 / 聚会[LCA]
    P5021 赛道修建[贪心+二分]
  • 原文地址:https://www.cnblogs.com/tcicy/p/8387215.html
Copyright © 2020-2023  润新知