基于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
基于Linux的Samba开源共享解决方案测试(六)的更多相关文章
- 基于Linux的Samba开源共享解决方案测试(一)
转自http://blog.csdn.net/u013394982/article/details/17914429 Linux操作系统 Linux是一类Unix计算机操作系统的统称.Linux操作系 ...
- 基于Linux的Samba开源共享解决方案测试(五)
对于客户端的网络监控如图: 双NAS网关50Mb码率视音频文件的稳定写测试结果如下: 100Mb/s负载性能记录 NAS网关资源占用 稳定写 稳定写 CPU空闲 内存空闲 网卡占用 NAS1 16个稳 ...
- 基于Linux的Samba开源共享解决方案测试(四)
对于客户端的网络监控如图: 双NAS网关100Mb码率视音频文件的稳定读测试结果如下: 100Mb/s负载性能记录 NAS网关资源占用 稳定写 稳定写 CPU空闲 内存空闲 网卡占用 NAS1 8个稳 ...
- 基于Linux的Samba开源共享解决方案测试(三)
在极限写场景下,对于网关的网络监控如图: 在极限写场景下,对于网关的网络监控如图: 在极限混合读写场景下,对于网关的网络监控如图: 在极限混合读写场景下,对于客户端的网络监控如图: 双NAS网关100 ...
- 基于Linux的Samba开源共享解决方案测试(二)
单NAS网关50Mb码率视音频文件的稳定读测试结果如下: 50Mb/s负载性能记录 NAS网关资源占用 稳定读 稳定读 CPU空闲 内存空闲 网卡占用 13个稳定流 96.70% 10G 104MB/ ...
- 基于Linux系统Samba服务器的部署
1.基础信息 用 Internet 文件系统 CIFS(Common Internet File System)是适用于MicrosoftWindows 服务器和客户端的标准文件和打印机共享系统信息块 ...
- [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名
Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...
- windows怎么访问linux的samba共享目录
windows怎么访问linux的samba共享目录 听语音 原创 | 浏览:6976 | 更新:2018-07-31 13:20 | 标签:LINUX WINDOWS 1 2 3 4 5 6 7 分 ...
- linux系统内SAMBA共享问题
最近将项目迁移到了公司服务器上,以后客户端调试和服务端开发都要去链接这台服务器,但是开发就需要调试,也需要log信息,同一局域网内,如何链接服务器并随时查看服务器上的log信息呢? 今天搞了一下,把步 ...
随机推荐
- shell 脚本实战笔记(7)--集群网络相关知识和环境搭建
前言: 对网络相关的知识, 做下笔记. 包括IP地址A/B/C的分类, 静态地址的配置/DNS配置, 以及网卡相关信息查看. *) A/B/C/D类网络地址的划分 IP地址=网络地址+主机地址 或 I ...
- [LeetCode&Python] Problem 566. Reshape the Matrix
In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...
- Windows环境下搭建Nginx和多版本PHP共存
PHP版本众多,彼此之间兼容性不好,不同程序经常需要的不同版本的PHP版本.这里介绍如何使用NGINX让不同版本的PHP共存. 软件下载地址 与nginx整合的php需要选择Non Thread Sa ...
- Transformer-view java实体 转换视图 Lists.transform
自: https://blog.csdn.net/mnmlist/article/details/53870520 meta_ws 连接: https://github.com/kse-music/d ...
- $.ajax()方法详解--极快瑞中的阿贾克斯函数
ajax() 函数和那些abs()函数 sin()这些函数都是底层实现好了,封装好了,可以直接拿来用的 使用者只需要传入参数,然后就可以得到相应的结果 $.ajax({name:value, name ...
- 获取的时候报cannot find package "golang.org /x/net/context",编译也报错误
gitclone 这个https://github.com/golang/net.git ,编译通过了. 创建了相应的golang.org/x/ 路径, 然后将克隆的目录 放回golang.org/ ...
- day33 python学习 多线程
线程的概念 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位. 三 线程与进程的区别 1 1.线程的创建开销小(无需申请内存空间或者资源),创建线程的 ...
- TFTP error: 'Only absolute filenames allowed' (2)
hisilicon # tftp 0x82000000 u-boot-hi3518ev200.bin Hisilicon ETH net controler MAC: ----- eth0 : phy ...
- 弹性盒子布局(display:flex)知识点
设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效.
- JUC集合之 CopyOnWriteArraySet
CopyOnWriteArraySet介绍 它是线程安全的无序的集合,可以将它理解成线程安全的HashSet.有意思的是,CopyOnWriteArraySet和HashSet虽然都继承于共同的父类A ...