详细Linux句柄数修改: 用户系统 + systemd

说明

liunx中文件句柄有两种,一种是用户级的,一种是系统级的

文件句柄限制,就是规定的单个进程能够打开的最大文件句柄数量(Socket连接也算在里面,默认大小1024)

需要知道的是, systemd service的句柄数不受用户句柄数的影响,需要额外设置。

1. 用户级的修改

1.1 用户级修改临时生效方法

重启后失效
    
 ulimit 命令身是分软限制和硬限制,加-H就是硬限制,加-S就是软限制。默认显示的是软限制,如果运行ulimit 命令修改时没有加上-H或-S,就是两个参数一起改变。硬限制就是实际的限制,而软限制是警告限制,它只会给出警告。

ulimit -SHn 10000

1.2 用户级修改永久有效方式

vi /etc/security/limits.conf

修改/etc/security/limits.conf文件,添加如下内容:


#<domain>      <type>  <item>         <value>
#(* 表示所用的用户)
* soft nofile 204800  
* hard nofile 204800

* soft nproc 204800
* hard nproc 204800

1.3 用户级永久生效方式修改后,重启服务器

reboot

1.4 查看用户级修改是否生效

ulimit -a

2 系统级修改

其实上面的修改都是对一个进程打开的文件句柄数量的限制,我们还需要设置系统的总限制才可以。

假如,我们设置进程打开的文件句柄数是1024 ,但是系统总线制才500,所以所有进程最多能打开文件句柄数量500。从这里我们可以看出只设置进程的打开文件句柄的数量是不行的。所以需要修改系统的总限制才可以。

2.1 临时修改方式

echo  6553560 > /proc/sys/fs/file-max

2.2 永久生效方式

vi /etc/sysctl.conf

修改/etc/sysctl.conf 文件,加入:

fs.file-max=65535

或者执行如下修改命令:

echo fs.file-max = 6553560 >> /etc/sysctl.conf
    使用vi修改文件和使用echo修改文件,最终效果都一样。

2.3 系统级永久生效方式修改后,重启服务器,才能生效

reboot

2.4 查看系统级文件句柄修改,是否生效

sudo sysctl -p

3.systemd service的资源设置

systemd service 不受/etc/security/limits.conf文件的配置的影响

3.1 修改systemd 的全局设置

对于systemd service的资源设置,可以修改systemd的全局配置,添加默认值
修改后重启即可

单纯使用 systemctl daemon-reload 是不会对/etc/systemd/system.conf刷新的

vim /etc/systemd/system.conf
DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535

3.2 修改特定systemd的配置

或者修改特定systemd service的systemd定义文件,无需重启,reload 即可

vi /etc/systemd/system/clickhouse-server.service

[Unit]
Description=ClickHouse Server (analytic DBMS for big data)
Requires=network-online.target
After=network-online.target

[Service]
Type=simple
Restart=always
RestartSec=30
RuntimeDirectory=clickhouse-server
ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/datadisk/clickhouse/clickhouse-server.pid
LimitCORE=infinity
# 把文件句柄数限制修改为500000
LimitNOFILE=500000
User=root
[Install]
WantedBy=multi-user.target

systemctl daemon-reload
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值