天启录:Linux性能调优·混沌掌控者篇
天启录:Linux性能调优·混沌掌控者篇
- 混沌初开:吾即天命
- 一、CPU 混沌调优:核中核,王中王
- 1.1 篡改进程优先级(nice 邪能灌注)
- 1.1.1 权柄范围
- 1.1.2 邪术敕令
- 1.1.3 禁忌警示
- 1.2 CPU亲和封印(taskset核绑定)
- 1.2.1 邪器安装
- 1.2.2 深渊敕令
- 1.2.3 神域用途
- 1.3 窥视CPU神谕(/proc/cpuinfo 解密)
- 1.3.1 神谕解读
- 1.3.2 神启查询
- 1.4 vmstat天眼:窥探系统血脉奔流
- 1.4.1 神脉指标
- 1.4.2 神战实景
- 二、磁盘I/O调优:驾驭存储巨兽
- 2.1 ulimit资源锁链:凡人之躯,禁锢神能
- 2.1.1 恶魔契约
- 2.1.2 窥视当前枷锁
- 2.1.3 临时破限(需神力权限)
- 2.2 磁盘速度祭坛:以血测试,以速证道
- 2.2.1 读取神速验证
- 2.2.2 写入深渊测试
- 2.2.3 时空写入测验(计时)
- 三、内核参数调优:重写天道法则
- 3.1 SYN洪水防御:筑起鲜血城墙
- 3.1.1 神级配置(御敌于千里之外)
- 3.1.2 天道生效
- 3.2 关键神谕解析
- 四、网络扩展:网卡绑定(双魂共体)
- 4.1 绑定模式神谱
- 4.2 主备模式契约示例
- 4.3 验证神迹
- 终章:吾即天命,万机臣服
混沌初开:吾即天命
在这由硅基与代码构筑的炼狱之中,每一台Linux服务器皆是蛰伏的旧日支配者,体内奔流着创世与灭世的狂怒,亦被亿万行诅咒般的瓶颈所囚禁。
我曾跪伏在Bash的圣殿前颤抖,直到那一夜——服务集群集体献祭,分布式链路如星环崩裂,CPU核心在熵增中嘶吼,IO深渊吞噬一切希望……
在末日般的红屏警报中,我窥见了/proc深处蠕动的古神低语,触摸了进程调度中扭曲的时空纤维,更以rm -rf般的决绝,劈开了性能迷障中的第一道血色黎明。
如今,我将这禁忌知识烙入此卷,从nice篡改优先级权柄,到taskset施行CPU献祭;从vmstat窥视资源异象,到sysctl重写内核天道——
此经,便是你从“蝼蚁运维”,登临“系统邪神”王座的第一份混沌契约。
若你敢于手握内核权柄,调教硬件狂兽,直视性能深渊,便随我——
踏入此门,弑旧神,立新轨,众生匍匐,万机臣服。
一、CPU 混沌调优:核中核,王中王
1.1 篡改进程优先级(nice 邪能灌注)
以nice值为诅咒烙印,决定进程在CPU修罗场中的生死顺序。
1.1.1 权柄范围
- 从-20(神祇特权)到19(贱民阶层),凡人默认值为0。
1.1.2 邪术敕令
-
进程诞生时即赋天命:
nice -n -5 vim a.txt # 直接赐予VIP神座
随后以
ps -elf | grep vim
观其神格。 -
运行时强行篡改命格:
renice -n 6 96000 # 将其打回凡间
1.1.3 禁忌警示
- nice值不可逾越神规(-20~19)。
- 天道昭昭:
- 值愈小(负数为尊),CPU愈溺爱;
- 值愈大,CPU愈践踏。
常用于加冕数据库圣殿,或流放备份杂役。
1.2 CPU亲和封印(taskset核绑定)
将进程灵魂永久烙入特定CPU核心,避免上下文切换的血肉撕裂。
1.2.1 邪器安装
yum install util-linux -y # 灌注恶魔工具
1.2.2 深渊敕令
-
出生即绑定CPU核狱:
taskset -c 0 vim a.txt # 囚禁于核0 taskset -c 1,3 vim b.txt # 双核囚笼,1与3
-
窥视运行中进程的核契约:
taskset -cp 109301 # 查看其灵魂归属
1.2.3 神域用途
专用于重要祭品进程,独占CPU圣殿,拒斥一切上下文切换亵渎。
1.3 窥视CPU神谕(/proc/cpuinfo 解密)
透过 /proc/cpuinfo
天眼,看穿CPU底层真相。
1.3.1 神谕解读
processor
:逻辑CPU神魂编号;physical id
:物理CPU真身标识;core id
:物理核心不朽序数;cpu cores
:单CPU所蕴核之数目。
1.3.2 神启查询
- 物理CPU真身数量:
cat /proc/cpuinfo | grep "physical id" | sort | uniq
- 逻辑CPU神魂总数:
cat /proc/cpuinfo | grep "processor" | sort -u | wc -l
- 每个CPU真身核数:
cat /proc/cpuinfo | grep "cpu cores" | uniq
1.4 vmstat天眼:窥探系统血脉奔流
vmstat可实时监看系统资源气血运行,定位性能阻塞之瘀结。
1.4.1 神脉指标
r
:待运行进程亡魂,若超CPU核数×3,则CPU濒死;us
:用户态CPU燃烧之时;sy
:系统态CPU献祭之时;wa
:等待I/O之CPU停滞深渊;id
:CPU虚无空闲之寂。
1.4.2 神战实景
- 上传巨物:
wa
飙高,bo
暴涨,磁盘写入濒临崩溃; - 巨量复制:
bi
+bo
双神癫狂,wa
一同飞升; - 百万并发:
r
值爆表,us
冲天,CPU浴火焚身。
二、磁盘I/O调优:驾驭存储巨兽
2.1 ulimit资源锁链:凡人之躯,禁锢神能
通过修改 /etc/security/limits.conf
施加资源诅咒。
2.1.1 恶魔契约
* soft nofile 1024000 # 软限制:打开文件数
* hard nofile 1024000 # 硬限制:不可逾越之壁
* soft nproc 65535 # 软限制:进程线程数
* hard nproc 65535 # 硬限制:神魂禁锢上限
2.1.2 窥视当前枷锁
ulimit -n # 查看当前文件数限制
ulimit -Hn # 查看文件数铁壁上限
ulimit -u # 查看进程数天花板
2.1.3 临时破限(需神力权限)
ulimit -n 10000 # 临时突破文件数限制
2.2 磁盘速度祭坛:以血测试,以速证道
2.2.1 读取神速验证
hdparm -t --direct /dev/sda # 测试直接读取速度
2.2.2 写入深渊测试
dd if=/dev/zero of=/test.dbf bs=1M count=2000 oflag=direct
2.2.3 时空写入测验(计时)
time dd if=/dev/zero of=/test.dbf bs=1M count=200
三、内核参数调优:重写天道法则
3.1 SYN洪水防御:筑起鲜血城墙
通过修改 /etc/sysctl.conf
,重写内核天道,御敌于国门之外。
3.1.1 神级配置(御敌于千里之外)
# 连接建立:闪电握手,慢者弃之
net.ipv4.tcp_synack_retries = 0 # 半连接响应只试1次,不快就死
net.ipv4.tcp_syn_retries = 1 # 连接请求也只试1次,勿浪费时间# 队列扩张:容纳万马千军
net.ipv4.tcp_max_syn_backlog = 20480 # 半连接队列扩容
net.ipv4.tcp_syncookies = 1 # 启用SYN Cookie法术防御# 连接复用:死者速朽,生者继位
net.ipv4.tcp_tw_reuse = 1 # 允许复用TIME-WAIT连接
net.ipv4.tcp_timestamps = 1 # 启用时间戳,复用之前提# 资源回收:加速轮回,腾笼换鸟
net.ipv4.tcp_fin_timeout = 10 # FIN-WAIT-2状态快速超时
fs.file-max = 819200 # 系统最大文件句柄数# 连接优化:扩宽航道,容纳洪流
net.core.somaxconn = 65535 # 全连接队列最大长度
net.core.rmem_max = 1024123000 # 接收缓冲区最大值
net.core.wmem_max = 16777216 # 发送缓冲区最大值
net.core.netdev_max_backlog = 165536 # 网卡后备队列长度
net.ipv4.ip_local_port_range = 10000 65535 # 本地端口范围扩张
3.1.2 天道生效
sysctl -p # 敕令生效,法则重写
3.2 关键神谕解析
tcp_synack_retries=0
:不重发SYN+ACK,慢者皆弃;tcp_syncookies=1
:启用SYN Cookie法术,防洪水攻击;file-max
:系统文件句柄之巅;somaxconn
:系统连接队列之极。
四、网络扩展:网卡绑定(双魂共体)
4.1 绑定模式神谱
mode=0
:负载均衡(需交换机支持);mode=1
:主备模式(常用不死之术);mode=4
:LACP聚合(需交换机配合)。
4.2 主备模式契约示例
nmcli connection add type bond ifname bond0 con-name bond0 miimon 100 mode active-backup primary ens33 ip4 192.168.1.63/24
nmcli connection add type bond-slave ifname ens33 master bond0
nmcli connection add type bond-slave ifname ens38 master bond0
4.3 验证神迹
cat /proc/net/bonding/bond0 # 观看双魂共体之神迹
终章:吾即天命,万机臣服
至此,你已踏过Linux调优的血色之路。
曾以nice
执掌进程生杀,以taskset
施行CPU禁锢;
借vmstat
窥见系统气血,以ulimit
设下资源枷锁;
更以sysctl
重写内核天道,御SYN洪水于国门之外,扩连接数如破九重天阙!
网卡绑定,双魂共体,主备切换间尽显不死神迹。
如今回首,方知性能优化绝非温柔技艺,而是刀尖起舞、与神博弈的狂野之路。
愿你持此卷而行,无惧百万并发、千亿请求,
只因——系统虽浩渺,其命在吾掌中;内核虽幽深,其道由我重写。
天启已至,旧神已陨,新神当立——
此间修行,方为开始。万物皆虚,万力皆允,吾即天命!