centos8平台使用ulimit做系统资源限制
一,ulimit的用途
1,
ulimit 用于shell启动进程所占用的资源,可用于修改系统资源限制
2,
使用ulimit -a 可以查看当前系统的所有限制值
使用ulimit -n <可以同时打开的文件数> 设置用户可以同时打开的最大文件数(max open files)
新装的linux默认只有1024,当作为并发访问量大的服务器时,很容易遇到error: too many open files。
error: too many open files
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看ulimit所属的包
[root@centos8 limits.d]# whereis ulimit
ulimit: /usr/bin/ulimit [root@centos8 limits.d]# rpm -qf /usr/bin/ulimit
bash-4.4.19-10.el8.x86_64
属于bash这个包,默认已经安装
三,查看ulimit的版本和帮助
1,查看版本:
ulimit没有提供显示版本的参数,
但它属于bash包,可以查看bash的版本
[root@centos8 limits.d]# bash --version
GNU bash,版本 4.4.19(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl.html> 本软件是自由软件,您可以自由地更改和重新发布。
在法律许可的情况下特此明示,本软件不提供任何担保。
2,查看帮助
[root@centos8 limits.d]# ulimit --help
3,查看手册
[root@centos8 limits.d]# man ulimit
四,ulimit的使用例子
1,列出当前的所有限制
#-a: 所有当前限制都被报告
[root@centos8 ~]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14898
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 14898
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
各字段的说明:
core file size -c:设置core文件的最大值.单位:blocks
data seg size -d:设置数据段的最大值.单位:kbytes
scheduling priority -e: 最高的调度优先级 (`nice')
file size -f:设置创建文件的最大值.单位:blocks
pending signals -i : 最多的可以挂起的信号数
max locked memory -l:设置在内存中锁定进程的最大值.单位:kbytes
max memory size -m:设置可以使用的常驻内存的最大值.单位:kbytes
open files -n:设置内核可以同时打开的文件描述符的最大值.单位:n
pipe size -p:设置管道缓冲区的最大值.单位:kbytes
stack size -s:设置堆栈的最大值.单位:kbytes
cpu time -t:设置CPU使用时间的最大上限.单位:seconds
virtual memory -v:设置虚拟内存的最大值.单位:kbytes
max user processes: -u 用户最多可开启的程序数目
file locks -x :最大的文件锁数量
2,查看/设置用户最多打开的文件描述符数量
#-n: open files
[root@centos8 limits.d]# ulimit -n
1024
[root@centos8 limits.d]# ulimit -n 65535
[root@centos8 limits.d]# ulimit -n
65535
3,查看/设置用户最多可开启的进程数目
#-u: max user processes
[root@centos8 limits.d]# ulimit -u
14898
[root@centos8 limits.d]# ulimit -u 65535
[root@centos8 limits.d]# ulimit -u
65535
4,其他参数:
#-S指soft 限制 (只给出警告信息,而不是硬限制)
#-H指hard 限制
[root@centos8 limits.d]# ulimit -SHn 65535
说明:此命令等效 ulimit -n 65535
五,使对最大进程数和最大文件数的修改永久生效
1,使用 ulimit -n 65535 可即时修改,但重启后就无效了。
要设置limits.conf配置文件才可以永久生效
2,修改资源的配置文件
[root@centos8 ~]$ vi /etc/security/limits.conf
增加内容:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
内容说明:
limits.conf的格式如下:
<domain> <type> <item> <value>
domain: 起作用的范围,
通配符*表示是针对所有用户的限制
也可以指定用户,例如:root
type: 取值: soft,hard 和 -
soft 指的是当前系统生效的设置值(警告)
hard 表明系统中所能设定的最大值(错误)
soft 的限制不能比har 限制高,- 表明同时设置了 soft 和 hard 的值。
item:
nofile - 打开的文件描述符的最大数目
nproc - 进程最大数量
编辑完成后,重启服务器使生效
六, ulimit的配置对于服务并不起作用,为什么?
因为ulimit和limits.conf的配置只针对登录用户,
而对systemd管理的服务不起作用,
服务的limit要在service文件中单独指定
请参考这一篇:
https://www.cnblogs.com/architectforest/p/12794986.html
七,查看centos版本
[root@centos8 ~]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
centos8平台使用ulimit做系统资源限制的更多相关文章
- centos8平台使用stress做压力测试
一,安装stress: 说明:el8的源里面还没有,先用el7的rpm包 [root@centos8 source]# wget https://download-ib01.fedoraproject ...
- centos8平台使用ab做压力测试
一,安装ab [root@blog ~]# yum install httpd-tools 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/archi ...
- 《浅谈产品》——加油APP的平台是如何做的
最近油价又上涨了,我们平常去加油站加油用到"某滴加油"."某团加油"这些APP,一般情况下加200的油,各种优惠下来,最终只需要付170左右就可以了,基本是优惠 ...
- centos8平台用ffprobe获取视频文件信息(ffmpeg4.2.2)
一,ffprobe的作用 ffprobe是强大的视频分析工具, 用于从多媒体流中获取相关信息或查看文件格式信息, 并以可读的方式打印 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...
- .net大型平台通过Nginx做负载均衡(Web层、中间服务层、DB层)
.net平台下,我目前部署过的均衡负载有两种方式(iis7和Nginx),以下以Nginx为例讲解web层的均衡负载. 简介:Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx ...
- 准备用有人云平台和tlink.io云平台和电脑做云转发
初步想的是用有人做国网电表转发,用tlink.io做综合采集模块转发,耗时一天 然后用tlink.io的做二次前端开发,耗时两天 用有人做二次前端开发,耗时两天 最后可以试试用常见的OPC公网转发到这 ...
- 从零开始搭建一个PaaS平台 - 我们要做什么
前言 从最开始的小公司做小网站,到现在进入现在的公司做项目,发现小公司里很多很多工作都是重复的劳动(增删改查),不过想想也是,业务软件最基础的东西不就是增删改查吗. 但是很多时候,这种业务逻辑其实没有 ...
- centos8平台安装gitosis服务
一,git服务器端:准备gitosis需要的各依赖软件 1,确认openssh是否存在?如不存在,以下列命令进行安装 [root@yjweb ~]# yum install openssh opens ...
- centos8平台:redis6配置启用io多线程(redis6.0.1)
一,linux平台上redis6的安装 请参见这一篇: https://www.cnblogs.com/architectforest/p/12830056.html 说明:刘宏缔的架构森林是一个专注 ...
随机推荐
- App测试理论简介
一.App测试常见关注点 1.App的功能测试 功能测试都是我们首要测试的,只有功能实现了才算符合上线发布的最低标准.我们需要检测产品功能是否已实现.产品功能是否符合设计要求.产品功能是否有重复.产品 ...
- 第24课 - #pragma 使用分析
第24课 - #pragma 使用分析 1. #pragma简介 (1)#pragma 是一条预处理器指令 (2)#pragma 指令比较依赖于具体的编译器,在不同的编译器之间不具有可移植性,表现为两 ...
- day51:django:dispatch&模板渲染&过滤器&标签&组件&静态文件配置
目录 1.dispatch 2.模板渲染 3.过滤器 4.标签 5.组件 6.静态文件配置 dispatch 回顾:CBV对应的URL传参 urls.py url(r'^book/(\d+)/(\d+ ...
- 基于Ant Design Vue封装一个表单控件
开源代码 https://github.com/naturefwvue/nf-vue3-ant 有缺点本来是写在最后的,但是博文写的似乎有点太长了,估计大家没时间往下看,于是就把有缺点写在前面了,不喜 ...
- 栈的Java实现-分别使用数组和链表
栈是非常重要的数据结构,栈具有后进先出的特点. 在JVM内部,每个线程维护一个栈,对于每个方法调用,入栈一个元素,成为栈帧,当方法执行完成后,对应的栈帧出栈. 栈帧中,也包含一个栈,称为操作数栈. 一 ...
- python-数据清洗与编码解码
0x01 join str = 'hk$$yicunyiye$$hello world' print(str.split('$$')) #自己实现 result = '' for i in str.s ...
- 【Unity 插件】Lean Pool 使用
2020-09-11 Lean Pool 是一个轻量级的游戏对象池库,它可以轻松的帮助你的游戏提高性能.当然,Lean Pool也可以工作于普通的C#类. 目录: 1.Lean Pool使用 2.Le ...
- 金蝶k/3 cloud 生产用料清单下推生成调拨单二开记录
系统默认的生产用料清单下推生成调拨单功能,是根据调拨选单数量来的,有库存和没有库存的都混在一起,导致业务人员审核调拨单的时候需要删除没有库存的分录行,严重影响工作效率. 现通过二开程序,根据生产用料清 ...
- 手把手教你在容器服务 TKE 上使用 LB 直通 Pod
什么是 LB 直通 Pod ? Kubernetes 官方提供了 NodePort 类型的 Service,即给所有节点开一个相同端口用于暴露这个 Service,大多云上 LoadBalancer ...
- spring初始(介绍、核心架构)
1.spring介绍 Spring是个java企业级应用的开源开发框架.主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring框架目标是简化Java企业级应用开发,并通 ...