高负载系统的Linux设置 第5章配置 ---7.2.2版本
高负载系统的Linux设置
原文: https://docs.tigase.net/tigase-server/7.1.2/Administration_Guide/html_chunk/linuxhighload.html
对于高负载系统,必须调整一些基本设置,以确保服务器具有足够的资源来处理大量的网络连接。
主要参数是允许进程同时保留的已打开文件的最大数量。每个网络连接都使用一个文件处理程序,因此,如果限制太低,您可能会很快用完处理程序,服务器将无法再接受任何连接。
此限制在2个级别上设置-在内核级别(fs.file-max)和系统级别(nofile)。
在某些配置中(例如,传输安装或将Bosh连接使用代理时)可能很重要的另一个内核属性是:net.ipv4.ip_local_port_range。可以使用与fs.file-max属性相同的方式来设置此参数。
该fs.file-MAX核心属性是通过sysctl命令设置。您可以通过执行以下命令来查看当前设置:
#sysctl fs.file-maxfs.file-max = 358920
如果您打算通过大量服务器连接运行高负载服务,则此参数至少应为您希望支持的网络连接数量的两倍。您可以通过执行以下命令来更改此设置:
#sysctl -w fs.file-max = 360000fs.file-max = 360000
您可以通过执行以下命令来查看当前设置:
#sysctl net.ipv4.ip_local_port_rangen et.ipv4.ip_local_port_range = 32768 61000
您可以通过执行以下命令来更改此设置:
#sysctl -w net.ipv4.ip_local_port_range =“ 1024 65000” net.ipv4.ip_local_port_range = 1024 65000
根据blog.kolargol.eu或www.gnugk.org/的说法,应更改一些keepalive设置以提高可靠性。
#sysctl -w net.ipv4.tcp_keepalive_time =“ 60” net.ipv4.tcp_keepalive_time = 60 #sysctl -w net.ipv4.tcp_keepalive_probes =“ 3” net.ipv4.tcp_keepalive_probes = 3 #sysctl -w net.ipv4.tcp_keepalive_intvl =“ 90” net.ipv4.tcp_keepalive_intvl = 90
上面的命令使系统记住新的设置,直到下一个系统重新启动。如果要永久保留更改,则必须编辑文件:/etc/sysctl.conf并将属性添加到文件末尾:
fs.file-max = 360000 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_keepalive_time = 60 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl = 90
下次启动服务器时,它将自动加载。
命令:
#sysctl -p
导致重新加载/etc/systcl.conf,当您向文件中添加了更多参数并且不想重新启动服务器时,这很有用。
这是系统限制使用的属性。例如,运行命令ulimit -a将显示为当前用户设置的所有限制:
# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited pending signals (-i) 38912 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 40960 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 38912 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
为了使其更加有趣和复杂,有两种类型的系统限制: 用户可以暂时超过的软限制和不能超过的 硬限制。要查看硬限制执行命令:
# ulimit -a -H core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited pending signals (-i) 38912 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 40960 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) 38912 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
硬限制通常大于软限制,有时相同。
对我们来说,最重要的参数是:打开文件。您可以在文件/etc/security/limits.conf中更改该属性。您必须在文件末尾追加2行以下内容:
jabber soft nofile 350000 jabber hard nofile 350000
其中jabber是运行IM服务的帐户的用户名。您还可以通过以下方式为计算机上的所有用户设置限制:
* soft nofile 350000 * hard nofile 350000 有些系统针对 root 需要单独添加 不能用 * 号
为了使这些更改生效,您必须从修改后的帐户注销并再次登录。应该应用新的限制。
如果打算将初始化脚本用于启动目的(或者只是希望能够使用su命令启动服务器),则必须通过修改/etc/pam.d/su文件并取消注释以下行来调整PAM配置:
session required pam_limits.so
之后,初始化脚本将遵守配置的限制。
标签:
上一篇: Tigase HTTP API 上一个 第8章。配置Tigase服务器以加载组件
下一篇: JVM设置和建议 第5章配置--7.1.2版本