Sun x4500作为文件服务器的调优

Sun x4500在互联网行业的典型应用就是作为文件服务器。通常数据是通过网络以http的方式
提供给客户端的机器。根据经验,Sun x4500上可以做一些优化:
系统参数
/etc/system:
set noexec_user_stack = 1 * for security, prevent execution on stack
set zfs:zfs_prefetch_disable = 1 * If the data is seldom re-used, turn off prefetch
set zfs:zfs_arc_max = 0x200000000 * 8GB cache size, leave some RAM for applications
set zfs:zfs_vdev_max_pending = 10 * for better I/O response time
set ip:ip_soft_rings_cnt = 3 * tcp/ip tuning
set ip:ip_squeue_soft_rings = 1 * tcp/ip tuning
set rlim_fd_cur = 65536 * allow applications to open more files simultaneously
网络设置
● 创建网络聚合
Sun x4500提供了4个千兆网口。作为一个高负荷的文件服务器,只使用一个千兆网口会造成性能瓶颈。可以创建网络聚合(link aggregation)来同时使用多个网口。Solaris上管理 link aggregation的命令是dladm。
以下是创建网络聚合的例子:创建3个网口的聚合。剩下一个网口可以做管理和监控用。但应注意用于管理的网口的IP地址最好与聚合网口的IP地址在不同的网段上,否则业务网络的出包可能会从管理用的网口出去,从而带宽受限制。
注意网络聚合还需要交换机的支持和配置(支持LACP协议)。
# dladm show-link
# ifconfig e1000g1 unplumb
# ifconfig e1000g2 unplumb
# ifconfig e1000g3 unplumb
# dladm create-aggr -d e1000g1 -d e1000g2 -d e1000g3 1
# ifconfig aggr1 plumb <new IP> up
# dladm show-aggr
(optional)If you want the config persistent after reboot, please:
# vi /etc/hostname.aggr1
<put the IP address in this file>
# reboot -- -r
● 主机上的网络流量监控网络流量的监控可以用一个开源的工具nicstat来查看。
[bash]# nicstat 5
Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat
17:05:17 lo0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:05:17 e1000g0 0.61 4.07 4.95 6.63 126.2 628.0 0.04 0.00
17:05:17 e1000g1 225.7 176.2 905.0 922.5 255.4 195.6 0.33 0.00
nicstat的下载地址:http://blogs.sun.com/timc/entry/ ... _network_monitoring
● TCP/IP的调整
创建一个脚本,根据需要调整相应的ndd参数
# cat /etc/rc2.d/S99ndd.sh
ndd -set /dev/tcp tcp_conn_req_max_q 8192 //应对大并发量的连接请求
ndd -set /dev/tcp tcp_conn_req_max_q0 8192 //应对大并发量的连接请求
ndd -set /dev/tcp tcp_recv_hiwat 131072 //增大tcp/ip 的receive buffer
ndd -set /dev/tcp tcp_xmit_hiwat 131072 //增大tcp/ip的send buffer
● 网络中断的调整
缺省情况下,Sun x4500四个网口的中断都会集中在一个CPU上。当网络流量很大时会成为瓶颈。解决办法是:
#eeprom e1000g_intpt_bind_cpus=0,1,3 //让网络中断分散到第0,1,3号CPU
#reboot
● disable ipfilter
ipfilter会影响性能,如果不用的话可以disable掉:
#scvadm disable svc:/network/ipfilter:default
Sun x4500上Web server的设置
Web server的种类很多,常用的有apache,Sun Java Enterprise System webserver, lighttpd, nginx等。对于Solaris上运行的开源Web server,建议下载使用SUN优化过的版本,里面包含了apache, lighttpd和nginx。下载地址:http://cooltools.sunsource.net/coolstack/
无论采用哪种web server都要注意以下几点:
● 有足够的工作线程/进程来处理客户端的连接。
● 网络I/O复用模式
Solaris上没有epoll,可以使用/dev/poll或event port。某些Web server对event port的支持不是很好,建议使用/dev/poll。
● 有足够的工作线程/进程来驱动I/O。
新一代的webserver都支持网络I/O复用,可以用较少的进程处理大量的网络连接。但是由于这些webserver并不是专为文件服务所设计的,并且没有采用异步I/O。较少的进程往往不能产生足够的I/O量,造成大量客户端长时间等待。所以需要加大webserver的工作进程数量。对于lighttpd可以增加到32个进程,对于nginx甚至可以增加到上百个进程。
● 根据需要调整web server的I/O size
可以使用truss命令来观察web server每次I/O的大小,如果可能的话通过修改配置或源码的方式调整I/O size,以提高I/O性能。
参考和推荐资源
● ZFS best practice guide
http://www.solarisinternals.com/ ... est_Practices_Guide
● ZFS evil tuning guide
http://www.solarisinternals.com/ ... S_Evil_Tuning_Guide

你可能感兴趣的:(职场,sun,休闲,ZFS,4500)