通过 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

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

相关推荐
飞飞传输1 分钟前
机器人行业数据流转深度研究:内外网数据摆渡平台应用现状与趋势
大数据·运维·安全
皮皮虾❀3 分钟前
广州云服务器价格:阿里云代理商折扣报价单指南
运维·服务器·阿里云
xiebingsuccess5 分钟前
Ubuntu 22.04 在 VMware 上的安装与远程桌面配置 — 任务报告
linux·运维·ubuntu·ai+嵌入式开发
程序员AlbertTu6 分钟前
Linux 系统 Bug 调试操作手册
linux·postgresql·bug
一颗烂土豆13 分钟前
ECharts 太平面?试试这款 Vue 3D 图表库
前端·vue.js·echarts
juesdo15 分钟前
vulnos OS-00118靶场通关
linux·web安全·网络安全·docker
anyup22 分钟前
迁移uni-app x,我是如何让 AI 把我一步步搞崩溃的...
前端·uni-app·trae
霸刀23 分钟前
nslookup 与 dig 使用指南:DNS 查询、区别对比及真实案例解读
linux·cdn·dns
郝亚军27 分钟前
asqlite-autoconf-3310100 的ubuntu 22.04 aarch64交叉编译
linux·运维·ubuntu
用户9210802628629 分钟前
从读框架到搭项目:基于 Ant Design X Vue 和 RICH 范式搭建 AI 前端工作台
前端