高负载系统的Linux设置 第5章配置 ---7.2.2版本

发布时间: 5年前 (2020-04-13)浏览: 1111评论: 0

高负载系统的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

fs.file-MAX核心属性是通过sysctl命令设置。您可以通过执行以下命令来查看当前设置:

#sysctl fs.file-maxfs.file-max = 358920

如果您打算通过大量服务器连接运行高负载服务,则此参数至少应为您希望支持的网络连接数量的两倍。您可以通过执行以下命令来更改此设置:

#sysctl -w fs.file-max = 360000fs.file-max = 360000

net.ipv4.ip_local_port_range

您可以通过执行以下命令来查看当前设置:

#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

TCP_keepalive

根据blog.kolargol.euwww.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

上面的命令使系统记住新的设置,直到下一个系统重新启动。如果要永久保留更改,则必须编辑文件:/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和init脚本

如果打算将初始化脚本用于启动目的(或者只是希望能够使用su命令启动服务器),则必须通过修改/etc/pam.d/su文件并取消注释以下行来调整PAM配置:

session required pam_limits.so

之后,初始化脚本将遵守配置的限制。



标签:

上一篇: Tigase HTTP API 上一个 第8章。配置Tigase服务器以加载组件
下一篇: JVM设置和建议 第5章配置--7.1.2版本

相关文章暂无相关
评论列表暂无评论
发表评论
验证码

«   2024年4月   »
1234567
891011121314
15161718192021
22232425262728
2930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接
    • RainbowSoft Studio Z-Blog
    • 订阅本站的 RSS 2.0 新闻聚合
    ︿
    Top