做的比较简约的网站,环球军事头条,短期网页设计师培训,wordpress关键词在哪里目录 重点工具与功能
一、CPU 资源调优
1.1 调整进程优先级#xff08;nice 值#xff09;
1.2 设置 CPU 亲和力#xff08;taskset#xff09;
1.3 cpu命令描述
1.4 使用 vmstat 分析系统瓶颈
二、磁盘 I/O 调优
2.1 ulimit 资源限制
2.2 测试磁盘速度
三、内核参…目录 重点工具与功能
一、CPU 资源调优
1.1 调整进程优先级nice 值
1.2 设置 CPU 亲和力taskset
1.3 cpu命令描述
1.4 使用 vmstat 分析系统瓶颈
二、磁盘 I/O 调优
2.1 ulimit 资源限制
2.2 测试磁盘速度
三、内核参数调优
3.1 防御 SYN 洪水攻击
3.2 关键参数说明
扩展网卡绑定Bonding
四、总结与建议
难点与注意事项
实践建议 重点工具与功能
类别工具名主要用途常用命令示例CPU 监控uptime查看系统平均负载uptimetop实时进程监控按 CPU/内存排序top → 按 P/Mmpstat多核 CPU 使用详情mpstat -P ALL 1 5ps查看进程 CPU/内存使用排名ps -aux --sort -pcpu | head -10内存监控free查看内存使用情况free -m/proc/meminfo查看详细内存信息cat /proc/meminfo磁盘 I/Oiostat磁盘 I/O 统计iostat -d -k -p /dev/sda 1 5iotop实时进程 I/O 监控iotop -o -d 1dd磁盘写入性能测试dd if/dev/zero oftestfile bs1M count1000网络监控nload实时网络带宽监控nloadnethogs按进程查看网络流量nethogsabHTTP 压力测试ab -n 1000 -c 2 http://example.com/系统整体vmstat系统整体状态CPU/内存/I/O/进程vmstat 1 5sar系统活动报告支持历史数据sar -u 2 5 -o cpu.sar 一、CPU 资源调优
1.1 调整进程优先级nice 值 作用通过调整进程的 nice 值改变其 CPU 调度优先级。 范围-20最高到 19最低默认是 0。 命令 nice -n -5 vim a.txt # 启动时设置优先级
nice用于给新进程设置 “nice 值”优先级的数值表示范围是 -20 到 19-n -5指定 nice 值为 -5数值越小优先级越高系统会优先分配 CPU 资源vim a.txt要启动的进程这里是用 vim 打开 a.txt
效果启动的 vim 进程会获得较高的 CPU 优先级在系统繁忙时它能抢到更多 CPU 时间操作更流畅
renice -n 6 24318 # 修改运行中进程的优先级
调整已运行的进程的优先级。
renice用于修改已有进程的 nice 值-n 6将 nice 值设为 6数值较大优先级较低系统会减少对它的 CPU 分配24318目标进程的 PID进程 ID可通过ps或top命令查看
效果PID 为 24318 的运行中进程优先级会降低在系统繁忙时它会 “谦让” CPU 资源给其他优先级更高的进 注意无法超出 -20~19 的范围。 关键规律 nice 值越小甚至负数→ 优先级越高 → 系统越 “照顾” 这个进程 nice 值越大 → 优先级越低 → 系统越 “冷落” 这个进程。 通常用于让重要程序如服务器进程优先级更高让耗资源但不紧急的程序如后台备份优先级更低合理分配 CPU 资源。 示例 1.2 设置 CPU 亲和力taskset 作用将进程绑定到指定 CPU 核心减少上下文切换开销。 安装yum install util-linux 命令 1taskset -c 0 vim a.txt # 绑定到 CPU0
tasksetLinux 中用于设置进程 CPU 亲和力绑定 CPU 核心的工具-c 0-c 表示指定 CPU 核心编号从 0 开始这里绑定到第 0 号 CPU 核心vim a.txt要启动的进程用 vim 打开 a.txt效果这个 vim 进程只会在 CPU0 上运行不会被调度到其他核心适合需要稳定占用单一核心的场景。
2taskset -cp 20146 # 查看进程 1087 的 CPU 绑定情况
查看已运行进程的 CPU 绑定情况。
-c显示 CPU 核心编号更易读-p表示操作对象是已存在的进程通过 PID 指定20146目标进程的 PID进程 ID可通过 ps 或 top 查看
[rootbenet21 ~]# taskset -cp 20146
pid 20146s current affinity list: 0
3taskset -c 1,3 vim b.txt # 绑定到 CPU1 和 CPU3
启动进程时绑定到多个 CPU 核心核心列表。
-c 1,3指定进程只能在 CPU1 和 CPU3 上运行核心编号用逗号分隔
效果这个 vim 进程会在 CPU1 和 CPU3 之间被调度但不会跑到其他核心如 CPU0、CPU2适合需要限制进程使用特定核心组的场景。
测试 ps -o psr -p 9999
top F P(空格) q示例
1.3 cpu命令描述
cat /proc/cpuinfo 是 Linux 系统中用于查看 CPU 硬件信息 的命令通过读取 /proc 虚拟文件系统中的 cpuinfo 文件展示当前系统中 CPU 的详细参数。
输出内容的核心信息以常见的多核 CPU 为例
processor : 0 # CPU 核心编号从 0 开始多核会依次显示 0、1、2...
vendor_id : GenuineIntel # CPU 厂商如 Intel、AMD
cpu family : 6 # CPU 系列厂商内部的产品系列编号
model : 158 # 型号同系列中的具体型号
model name : Intel(R) Core(TM) i7-7700HQ CPU 2.80GHz # 具体型号名称和主频
stepping : 9 # 步进硬件版本号影响稳定性和兼容性
microcode : 0x84 # 微代码版本CPU 内置的底层程序版本
cpu MHz : 2808.000 # 当前运行频率动态调频时会变化
cache size : 6144 KB # 缓存大小L3 缓存影响数据访问速度
physical id : 0 # 物理 CPU 编号多物理 CPU 时区分单 CPU 通常为 0
siblings : 8 # 单个物理 CPU 的逻辑核心数包含超线程
core id : 0 # 物理核心编号同一物理 CPU 内的核心编号
cpu cores : 4 # 单个物理 CPU 的物理核心数此处为 4 核
apicid : 0 # 用于多核通信的 APIC 编号
initial apicid : 0
fpu : yes # 是否支持浮点运算单元FPU
fpu_exception : yes # 是否支持 FPU 异常处理
cpuid level : 22 # CPUID 指令支持的级别用于查询 CPU 功能
wp : yes # 是否支持写保护内存安全特性
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d # CPU 支持的功能指令集如 SSE、AVX 等加速指令
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit # 已知的硬件漏洞如熔断、幽灵等
bogomips : 5616.00 # 伪性能指标早期用于粗略衡量 CPU 速度参考意义不大
clflush size : 64 # CLFLUSH 指令一次能刷新的缓存大小字节
cache_alignment : 64 # 缓存对齐粒度字节影响内存访问效率
address sizes : 39 bits physical, 48 bits virtual # 支持的物理/虚拟地址位数决定最大内存支持
power management: # 电源管理相关特性如节能、调频技术 详细详解 核心数量 看 processor 条目数量 → 总逻辑核心数包含超线程。 看 cpu cores → 单个物理 CPU 的物理核心数如 cpu cores : 4 表示 4 核。 例4 物理核 超线程 8 逻辑核 → 会显示 8 个 processor 条目0~7。 型号和主频 model name 直接显示 CPU 型号如 i7-7700HQ和基础主频如 2.80GHz。 cpu MHz 显示当前实时频率支持睿频的 CPU 会动态变化。 厂商和功能 vendor_id 区分 Intel/AMD 等厂商。 flags 列出支持的指令集如 avx2 加速多媒体处理vmx 支持虚拟化。
常用场景 快速确认服务器的 CPU 核心数判断并行处理能力。 检查 CPU 是否支持特定功能如虚拟化、硬件加速指令。 排查硬件相关问题如型号是否与预期一致是否存在已知漏洞。
简单说这条命令是“查看 CPU 身份证”的工具能让你快速了解系统的 CPU 配置。
操作指令 物理cpu物理cpu数量实际服务器中插槽上的cpu个数 cat /proc/cpuinfo | grep physical id | sort |uniq sort 降序 uniq去重 逻辑cpu操作系统可以使用逻辑CPU来模拟出真实CPU的效果 cat /proc/cpuinfo | grep processor | sort -u | wc -l
wc -l 统计数量 cpu核数一块CPU上面能处理数据的芯片组的数量 cat /proc/cpuinfo | grep cpu cores | sort | uniq 1.4 使用 vmstat 分析系统瓶颈 关键指标 r等待运行的进程数若持续 CPU核心数×3说明 CPU 繁忙。 us用户态 CPU 时间高表示应用程序消耗多。 sy系统态 CPU 时间高表示内核消耗多。 wa等待 I/O 的 CPU 时间高表示磁盘 I/O 瓶颈。 id空闲 CPU 时间。 实战场景 上传大文件wa 高bo 大说明写磁盘繁忙。 复制文件bi 和 bo 都高wa 高说明读写磁盘都繁忙。 高并发 HTTP 请求r 高us 高说明 CPU 处理不过来。 二、磁盘 I/O 调优
2.1 ulimit 资源限制 配置文件/etc/security/limits.conf 资源限制配置文件通常是 /etc/security/limits.conf 或 /etc/security/limits.d/ 目录下的配置文件中的设置用于限制系统用户的进程资源使用上限 常用设置 * soft nofile 1024000
* hard nofile 1024000
* soft nproc 65535
* hard nproc 65535
*表示对 所有用户 生效也可以指定具体用户名如 root 或 wwwsoft软限制警告线超过时系统会警告但允许临时超过直到进程结束hard硬限制强制线由内核强制执行绝对不能超过软限制不能高于硬限制nofile限制 打开文件描述符的数量包括文件、网络连接、管道等Linux 中 “一切皆文件”nproc限制 用户能创建的进程 / 线程数量
具体配置的含义
* soft nofile 1024000所有用户的 软限制最多可打开 1024000 个文件描述符超过会警告* hard nofile 1024000所有用户的 硬限制绝对不能打开超过 1024000 个文件描述符* soft nproc 65535所有用户的 软限制最多可创建 65535 个进程 / 线程超过会警告* hard nproc 65535所有用户的 硬限制绝对不能创建超过 65535 个进程 / 线程
ulimit -n # 查看 nofile 软限制
ulimit -Hn # 查看 nofile 硬限制
ulimit -u # 查看 nproc 软限制
临时修改ulimit -n 10000 永久修改 vim /etc/security/limits.conf 2.2 测试磁盘速度 读速度测试 是一个用于测试硬盘读取速度的命令主要用于评估磁盘的顺序读取性能 hdparm -t --direct /dev/sda
hdparmLinux 下用于查看和调整硬盘参数的工具-t测试硬盘的缓存读取速度读取数据时会利用硬盘缓存和系统缓存--direct启用 “直接 IO” 模式跳过系统缓存直接从硬盘读取原始数据更接近真实的物理读取速度/dev/sda指定要测试的硬盘设备sda 通常是系统的第一个硬盘
写速度测试 dd if/dev/zero of/test.dbf bs1M count2000 oflagdirect
ddLinux 下用于复制和转换文件的工具常被用来测试磁盘性能if/dev/zeroif 表示 “输入文件”/dev/zero 是一个特殊设备文件会不断生成二进制的 0 数据可理解为 “无限的空数据来源”of/test.dbfof 表示 “输出文件”即把数据写入到 /test.dbf 这个文件中bs1Mbs 表示 “块大小”这里设置为 1MB每次读写的数据块大小count2000count 表示 “块数量”这里生成 2000 个 1MB 的块总文件大小为 2000MB约 2GBoflagdirectoflag 表示 “输出标志”direct 启用直接 IO 模式跳过系统缓存直接写入物理硬盘更真实反映硬盘写入速度
时间测试 time dd if/dev/zero of/test.dbf bs1M count200
time用于统计后续命令的执行时间包括实际耗时、用户态耗时、内核态耗时
dd文件复制工具这里用于生成测试文件
if/dev/zero输入源为 /dev/zero不断生成空数据作为写入的数据源of/test.dbf输出文件为 /test.dbf要创建的测试文件bs1M每次读写的数据块大小为 1MBcount200共写入 200 个块总文件大小为 200MB1M × 200
信息详解
dd 部分的输出确认写入了 200MB 数据652 MB/s 是计算出的写入速度总数据量 ÷ 实际耗时注意这里没有 oflagdirect写入速度会包含系统缓存的加速效果可能比硬盘真实物理速度快尤其是写入小文件时。time 部分的输出real实际总耗时从命令开始到结束的墙钟时间0.322 秒user命令在用户态运行的时间几乎为 0因为主要是 IO 操作sys命令在内核态运行的时间0.320 秒主要是磁盘 IO 的内核处理时间
三、内核参数调优
3.1 防御 SYN 洪水攻击 修改 /etc/sysctl.conf net.ipv4.tcp_synack_retries 0
net.ipv4.tcp_syn_retries 1
net.ipv4.tcp_max_syn_backlog 20480
net.ipv4.tcp_syncookies 1
net.ipv4.tcp_tw_reuse 1
net.ipv4.tcp_tw_recycle 1
net.ipv4.tcp_fin_timeout 10
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 生效sysctl -p
3.2 关键参数说明 tcp_synack_retries0不重发 SYNACK快速释放半连接。 tcp_syncookies1启用 SYN Cookie 防御少量攻击。 file-max系统最大文件句柄数。 somaxconn最大连接队列长度。
扩展网卡绑定Bonding
bond 双网卡 流量分担 保证业务不断 模式 mode0负载均衡需交换机支持 mode1主备模式常用 mode4LACP 聚合需交换机支持 配置命令以主备模式为例 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 验证cat /proc/net/bonding/bond0 四、总结与建议
模块调优手段适用场景CPUnice、taskset、vmstat高 CPU 负载、多进程调度磁盘 I/Oulimit、hdparm、dd高并发读写、备份任务网络Bonding、内核参数高可用、负载均衡、防攻击内核sysctl 参数优化高并发连接、安全防护
难点与注意事项 负载解读 uptime 输出的负载值需与 CPU 核心数对比1 表示可能过载。 需结合 1/5/15 分钟负载趋势综合判断。 I/O 瓶颈判断 vmstat 中 wa 值 20% 表示 I/O 可能成为瓶颈。 iowait 高不一定表示磁盘慢可能是进程等待 I/O。 内存与 Swap vmstat 中 si/so 非零表示正在使用 Swap可能内存不足。 free 中的 available 列更反映实际可用内存。 网络带宽分析 nload 可查看实时带宽nethogs 可定位具体进程流量。 ab 可用于模拟 HTTP 请求测试服务端性能。
实践建议 组合使用工具如 top iotop nethogs 可全面定位 CPU/I/O/网络问题。 历史数据分析使用 sar 记录并分析历史性能数据便于趋势判断。 模拟测试使用 dd、ab 等工具模拟高负载场景验证系统承受能力。 权限注意部分工具如 iotop、nethogs需 root 权限运行。