通过 ulimit 和 sysctl 调整Linux系统性能

目录

  • 一:资源限制管理工具:ulimit
    • [1、ulimit 作用介绍](#1、ulimit 作用介绍)
    • [2、ulimit 常用选项](#2、ulimit 常用选项)
    • [3、ulimit 配置文件](#3、ulimit 配置文件)
  • 二:内核参数调整工具:sysctl
    • [1、sysctl 作用介绍](#1、sysctl 作用介绍)
    • [2、sysctl 常用选项](#2、sysctl 常用选项)
    • [3、sysctl 配置文件](#3、sysctl 配置文件)

一:资源限制管理工具:ulimit

1、ulimit 作用介绍

ulimit 是为用户设定资源限制的工具。 它限制的是用户会话中所有进程的资源使用,而不仅仅是某个单独的进程。通过限制某个用户进程的资源来保该用户的进程不会消耗过多的系统资源。

  • 限制以某个用户身份运行的单个进程可以打开的文件数量。

  • 限制某个用户可以创建的最大进程数。

  • 限制以某个用户身份运行的单个进程可以使用的堆栈大小。

  • 限制以某个用户身份运行的单个进程可以使用的最大虚拟内存量。

  • 限制以某个用户身份运行的单个进程可以使用的最大 CPU 时间。

2、ulimit 常用选项

ulimit -a

  • 显示当前用户的所有资源限制信息。

ulimit -n

  • 如果 不加数字,表示 查看当前用户单个进程可以打开的最大文件数量。
  • 如果 加数字,表示 设置 当前用户单个进程可以打开的文件描述符的最大数量。

ulimit -u

  • 如果 不加数字,表示 查看当前用户可以创建的最大进程数。
  • 如果 加数字,表示 修改最大进程数。

ulimit -s

  • 如果 不加数字,表示 查看当前用户的堆栈大小。
  • 如果 加数字,表示 设置堆栈大小。

ulimit -l

  • 如果 不加数字,表示 查看当前用户最大可锁定的内存大小。
  • 如果 加数字,表示 修改最大可锁定内存大小。

ulimit -t

  • 如果 不加数字,表示 查看当前用户进程的最大 CPU 时间。
  • 如果 加数字,表示 设置进程的最大 CPU 时间(单位:秒)。

通过 ulimit 命令修改资源限制信息

  • 只能修改执行ulimit这个命令的用户的资源限制信息,不能修改其他用户的资源限制信息;

  • 临时生效,该会话结束后,恢复默认值

3、ulimit 配置文件

配置文件名称/etc/security/limits.conf


配置文件格式

bash 复制代码
用户名		限制类型	资源类型	给定的资源值

# 用户名
	# 如果为 * 就表示针对所有用户生效
	# @groupname:表示特定的用户组
	# 
# 限制类型
	# soft:软限制,用户可以在不超出硬限制的情况下,通过命令修改软限制值。
	# hard:硬限制,只能由 root 用户 或具有足够权限的用户修改配置文件实现。
	# -:无类型,包含软限制和硬限制
# 限制的资源类型
	# core:core控制的是操作系统生成的文件大小,这个文件是用来排错的;
	# nproc:控制最大进程数。
	# nofile:控制最大打开文件数。
	# memlock:控制最大内存锁定大小。
	# msgqueue:控制最大消息队列大小。
# 给定的资源值
	# unlimited:表示无限制
	# 数字:表示不能超过这个数字指定值

通过 编辑配置文件修改资源限制信息

  • 需要管理员身份的用户(root)编辑配置文件,可以修改其他用户的资源限制信息;

  • 永久生效,开机会自动加载这个配置文件;

二:内核参数调整工具:sysctl

1、sysctl 作用介绍

sysctl 可以用来修改Linux内核的一些参数,从而实现性能优化。sysctl 主要用于查询和修改 /proc/sys 目录下的内核参数,使用sysctl调整的内核参数也是临时生效。

可以通过写入配置文件( /etc/sysctl.conf )的方式来实现持久化生效。

2、sysctl 常用选项

sysctl -w key=value:临时改变某个指定参数的值

例如:临时开启网络转发

bash 复制代码
sysctl -w net.ipv4.ip_forward=1

sysctl -a:显示所有生效的系统参数


sysctl -p [filename]:修改配置文件后,加载生效(没有指定具体文件系统首先会读取 /etc/sysctl.conf 文件中的设置)


通过sysctl修改的内核参数只会临时生效,系统重启后修改的参数会恢复到初始值;

3、sysctl 配置文件

配置文件格式:

  • 每一行是一个 键值对,其中 key 是内核参数名称,value 是该参数的值。两者之间用 等号(=) 分隔。

  • 键名所表示的路径,是 /proc/sys 目录中的 配置项路径,以/proc/sys为起点,其中斜线用点表示。net.ipv4.ip_forward 对应的文件是 /proc/sys/net/ipv4/ip_forward

sysctl 常用配置:

bash 复制代码
# 设置较低的交换空间使用倾向
vm.swappiness = 0

# 开启网络转发功能
net.ipv4.ip_forward=1

# 禁ICMP回应报文(禁ping)
net.ipv4.icmp_echo_ignore_all=1

通过将相关内核参数写入配置文件,系统重启后仍然会生效;

相关推荐
机智的奎哥15 分钟前
微信小程序实现长按录音,点击播放等功能,CSS实现语音录制动画效果
前端·javascript·css·微信·微信小程序·小程序
yangfeipancc35 分钟前
ELK的搭建
运维·elk·jenkins
人机与认知实验室42 分钟前
态势感知是自动化,势态知感是智能化
运维·自动化
PyAIGCMaster43 分钟前
自动化之数据库:docker部署mongo,为下一步的使用打下基础
运维·docker·自动化
XDU小迷弟1 小时前
第30天:PHP应用&组件框架&前端模版渲染&三方插件&富文本编辑器&CVE审计
开发语言·前端·网络安全·php
明月看潮生1 小时前
青少年编程与数学 02-006 前端开发框架VUE 09课题、计算属性
前端·javascript·vue.js·青少年编程·编程与数学
Minxinbb1 小时前
Zabbix安装,配置模板监控主机(在线安装和离线安装)
linux·zabbix
天天进步20151 小时前
CASL的RBAC用户权限控制实现指南
linux·运维·ubuntu
布兰妮甜1 小时前
Three.js - 打开Web 3D世界的大门
前端·javascript·3d·动画·three.js
小皮虾1 小时前
几行代码封装,让小程序云函数变为真正云函数,开发体验直接起飞
前端·javascript·微信小程序