一,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做系统资源限制的更多相关文章

  1. centos8平台使用stress做压力测试

    一,安装stress: 说明:el8的源里面还没有,先用el7的rpm包 [root@centos8 source]# wget https://download-ib01.fedoraproject ...

  2. centos8平台使用ab做压力测试

    一,安装ab [root@blog ~]# yum install httpd-tools 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/archi ...

  3. 《浅谈产品》——加油APP的平台是如何做的

    最近油价又上涨了,我们平常去加油站加油用到"某滴加油"."某团加油"这些APP,一般情况下加200的油,各种优惠下来,最终只需要付170左右就可以了,基本是优惠 ...

  4. centos8平台用ffprobe获取视频文件信息(ffmpeg4.2.2)

    一,ffprobe的作用 ffprobe是强大的视频分析工具, 用于从多媒体流中获取相关信息或查看文件格式信息, 并以可读的方式打印 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...

  5. .net大型平台通过Nginx做负载均衡(Web层、中间服务层、DB层)

    .net平台下,我目前部署过的均衡负载有两种方式(iis7和Nginx),以下以Nginx为例讲解web层的均衡负载. 简介:Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx ...

  6. 准备用有人云平台和tlink.io云平台和电脑做云转发

    初步想的是用有人做国网电表转发,用tlink.io做综合采集模块转发,耗时一天 然后用tlink.io的做二次前端开发,耗时两天 用有人做二次前端开发,耗时两天 最后可以试试用常见的OPC公网转发到这 ...

  7. 从零开始搭建一个PaaS平台 - 我们要做什么

    前言 从最开始的小公司做小网站,到现在进入现在的公司做项目,发现小公司里很多很多工作都是重复的劳动(增删改查),不过想想也是,业务软件最基础的东西不就是增删改查吗. 但是很多时候,这种业务逻辑其实没有 ...

  8. centos8平台安装gitosis服务

    一,git服务器端:准备gitosis需要的各依赖软件 1,确认openssh是否存在?如不存在,以下列命令进行安装 [root@yjweb ~]# yum install openssh opens ...

  9. centos8平台:redis6配置启用io多线程(redis6.0.1)

    一,linux平台上redis6的安装 请参见这一篇: https://www.cnblogs.com/architectforest/p/12830056.html 说明:刘宏缔的架构森林是一个专注 ...

随机推荐

  1. Redis统计访问量方法

    1.统计客户忘问量 2.查询某位ID客户是否登录 一亿用户,统计数据10M左右,比较省空间 set usercount 0 设置一个变量,用于记录客户访问量setbit usercount 2 0   ...

  2. 论文:Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering-阅读总结

    Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering-阅读总结 笔记不能简单的抄写文中 ...

  3. MySQL For Linux(CentOS/Ubuntu/Debian/Fedora/Arch)一键安装脚本(5.1-8.0)

    简介 很多童鞋不懂这么在Linux系统安装MySQL,网上大多数教程较复杂,不太适合小白安装,本教程提供一键安装脚本供大家使用,教大家怎么在Linux操作系统( 支持CentOS/Ubuntu/Deb ...

  4. vue项目中使用ts(typescript)入门教程

    最近项目需要将原vue项目结合ts的使用进行改造,这个后面应该是中大型项目的发展趋势,看到一篇不错的入门教程,结合它并进行了一点拓展记录之.本文从安装到vue组件编写进行了说明,适合入门. 1.引入T ...

  5. 7.kafka HA

  6. django中外键的related_name属性

    我先定义两个模型,一个是作者,一个是作者出版的书籍,算是一对多的类型. class Person(models.Model); name = models.CharField(verbose_name ...

  7. WAF的那些事

    介绍WAF 本节主要介绍WAF (Web Application Firewall, Web应用防火墙)及与其相关的知识,这里利用国际上公认的一种说法: Web应用防火墙是通过执行系列针对HTTP/H ...

  8. mybatis里的mapper,@Mapper参数,Mapper.xml文件 sql语句Select+where语句

    提示:有不清楚的可以试着看一下我最后的连接,是跟这些内容相关的 Mapper文件,特殊符号: 转义符号 原符号 中文意思 &It; < 小于号 > > 大于号 & & ...

  9. Centos-挂载和卸载分区-mount

    mount 挂载和卸载指定的分区 相关选项 -a 加载文件 /etc/fstab中指定的所有设备 -n 不降加载信息记录在 /etc/mtab文件中 -r 只读方式加载设备 -w   可读可写价值设备 ...

  10. mysql-4-functions

    #进阶4:常见函数(单行函数) /* 将一组逻辑语句封装在方法体中,对外暴露方法名 语法: SELECT 函数名() [FROM 表名] 分类: 1.单行函数:concat,length,ifnull ...