20.2. Session

本文介绍了如何通过优化防火墙、服务器配置及应用程序来提升系统的并发处理能力。涵盖了从硬件资源到软件参数调整的多个方面。

firewall (nat session) - switch (Forwarding bandwidth) - os (ulimit,sysctl) - application (httpd,vsftpd,tomcat ...)

会话数,国人俗称并发数。当你的带宽没有满,但tcp不能建立连接,这时你就要考虑会话数了。

20.2.1. firewall

购买防火墙的时候主要有两个指标,一是会话数,二是带宽,三是配备模块。售前工程师都会交代清楚。

例如 Cisco ASA 5550 会话数65万,2个1G接口,可选IPS模块等等...

使用下面命令可以查看当前会话数

show conn count
			

20.2.2. Server

Linux 影响会话数的的参数与配置文件

/etc/security/limits.conf , /etc/security/limits.d

nofile - max number of open files 在POSIX系统中硬件,管道,Socket 均被看作是一个设备,如硬盘是块设备,显示器是字符设备,操作这些设备均使用c的open函数,被算作打开一个文件。所有设备都是如此,加上web服务器还要读取很多HTML文件,系统对nofile 开销是非常巨大的。

nproc - max number of processes 目前多线程是主流,使用多线程技术这个参数可以不关心。像Oracle,PostgreSQL, Apache prefork,你就需要关心这个参数

/etc/sysctl.conf , /etc/sysctl.d/

net.ipv4.ip_local_port_range = 1024 65500 可用端口范围

tcp 协议当你尝试主动与服务器建立连接,如:telnet 172.16.0.1 80,本地会开启一个大于1024小于65500的端口

client: localhost:1025 --- 172.16.0.1:80 server

以上参数要综合你的CPU处理能力,内存空间,硬盘IO等等,才能配置出合理数值

配置过大(小马拉大车),超出你的服务器处理能力,导致服务器无响应,最终只能重启

配置过小(大马拉小车),你的服务器长时间处于空间状态,CPU,内存没有得到合理使用

在我的《Netkiller Linux 手札》中你可以找到具体的设置方法。

20.2.3. application

连接数受限与limits与sysctl

apache : httpd/conf/extra/httpd-mpm.conf

			
<IfModule mpm_worker_module>
    ServerLimit         16
    ThreadLimit         256
    StartServers        8
    MaxClients          4096
    MinSpareThreads     64
    MaxSpareThreads     256
    ThreadsPerChild     256
    MaxRequestsPerChild 10000
</IfModule>
			
			

mysql : /etc/my.cnf

			
[mysqld]
max_connections=250
			
			

不依依列举,有兴趣看我的系列文档。





原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值