LINUX内核优化
Vim /etc/sysctl.conf //打开配置文件
sysctl –p 加载修改的参数,使其生效.
net.ipv4.ip_local_port_range = 9000 65536
//用来指定外部连接端口范围
net.core.rmem_max = 16777216//指定接受连接缓冲区的大小:字节单位
net.core.wmem_max = 16777216
//指定发送连接缓冲区的大小:字节单位
net.ipv4.tcp_rmem = 4096 87380 16777216//优化TCP连接发送/接受缓冲区min default max
net.ipv4.tcp_wmem = 4096 87380 16777216
//优化TCP连接发送/接受缓冲区min default max
net.ipv4.tcp_fin_timeout = 30//提高系统的处理连接数
net.core.netdev_max_backlog = 30000
//该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
net.ipv4.tcp_no_metrics_save = 1
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144//表示SYN队列长度,设置较大容纳更多的等待连接
net.ipv4.tcp_synack_retries = 2//放弃连接之前发送的SYN+ACK包数量
net.ipv4.tcp_syn_retries = 2
//放弃建立连接之前发送的SYN包的数量,主要目的是能抵抗小量攻击.
#######################以上全部不是标准参数,根据服务器性能决定##################
Linux-ulimit
资源限制命令ulimit:
ulimit –HSn 131072
ulimit –HSc unlimited
-H 设置硬件资源限制.
-S设置软件资源限制.
-n 设置open files ,设置内核可以同时打开的文件描述符的最大值.
-c 设置文件的最大值,单位是blocks
可以使用ulimit –a 进行查看配置.
VARNISH - thread_pools
thread_pools:用来设置线程池的数量。一般认为这个值和系统CPU的数目相同最好。设置多一些的pool,Varnish的并发处理能力会更强,但是也会消耗更多的CPU和内存.
涉及到子进程创建和销毁一个进程需要较高的系统资源,如果使用多个进程池挂载这些处理请求的子进程可以使系统消耗大大降低.
Thread_pool_min 设置最少进程个数
Thread_pool_max 设置最大进程个数
Thread_pool_timeout 设置超出最大进程个数,进程的超时时间.
可以通过登录telnet varnisip:port
使用param.show命令查看参数.
使用param.set设置参数:param.set thread_pool_min 50 返回200 0 为成功设置.
总结:varnish处理请求,性能等方面,是通过配合优化过的linux操作系统才能最好发挥.
注意点:如果使用-s file 方式启动varnish,要注意每次重启前要把以前varnish缓存用过的空洞文件删除,启动varnish时会提示你,文件的存放位置.
#######################以上全部不是标准参数,根据服务器性能决定##################