Linux 进阶用法

一、系统性能调优

系统性能调优是 Linux 管理中的关键技能,它能显著提升系统在不同应用场景下的表现。通过针对性的调优,可以解决资源瓶颈问题,提高服务响应速度,优化资源利用率。

(一)CPU 性能调优

知识点详解

1. CPU 信息查看与分析

  • lscpu 命令:提供 CPU 架构、核心数、线程数、缓存大小等详细信息
    • 示例:lscpu | grep -E 'Model name|Socket|Core|Thread'
  • top 命令:实时显示 CPU 使用率、进程状态和资源占用情况
    • 关键指标:%us(用户空间)、%sy(系统空间)、%id(空闲)
  • htop 命令:增强版的 top,提供彩色显示和鼠标支持
    • 可以直观查看 CPU 每个核心的负载情况

2. 进程调度优化

  • CFS 调度器:完全公平调度器,保证所有进程按权重公平获取 CPU 时间
  • 优先级调整:
    • nice 命令:启动新进程时设置优先级(范围 -20 到 19)
      • 示例:nice -n 15 ./long_running_script.sh
    • renice 命令:调整已运行进程的优先级
      • 示例:renice -n 10 -p 1234
  • CPU 亲和性设置:
    • taskset 命令:将进程绑定到特定 CPU 核心
    • 示例:taskset -c 0,1 ./cpu_intensive_app

3. 高级调优工具

  • perf 工具:性能分析工具,可检测 CPU 热点
  • tuned 服务:提供预定义的性能优化配置集

注意事项与最佳实践

  1. 优先级设置需谨慎

    • 避免将非关键进程设为最高优先级(-20)
    • 关键系统进程默认已设置为高优先级,一般无需修改
  2. 多核优化策略

    • 对于多线程应用,确保线程数不超过物理核心数
    • 使用 CPU 亲和性减少缓存失效
  3. 监控与基准测试

    • 使用 sar -u 1 3 监控 CPU 使用率变化
    • 调优前后进行基准测试对比效果

(二)内存性能调优

知识点详解

1. 内存监控工具

  • free -h:人性化显示内存总量、使用量和空闲量
    • 重点关注 available 列,反映实际可用内存
  • vmstat 1:实时监控内存活动
    • 关键指标:si(每秒从swap读入内存量)、so(每秒写入swap量)
  • /proc/meminfo:详细内存统计信息文件

2. 内存管理机制

  • 虚拟内存系统组成:
    • 物理内存
    • 交换分区(swap)
    • 页面缓存(page cache)
    • 缓冲区(buffer cache)
  • 交换空间管理:
    • 查看:swapon --show
    • 创建:fallocate -l 2G /swapfile && mkswap /swapfile && swapon /swapfile
  • OOM Killer:内存耗尽时选择性终止进程的机制
    • 调整策略:/proc/<pid>/oom_score_adj

3. 优化技术

  • 大页(HugePages):减少 TLB 失效,提升性能
    • 配置:/proc/sys/vm/nr_hugepages
  • 透明大页(THP):自动管理的大页
    • 控制:/sys/kernel/mm/transparent_hugepage/enabled
  • 内存压缩(zswap):在内存中压缩页面,减少交换I/O

注意事项与最佳实践

  1. 交换空间配置原则

    • 物理内存 < 4GB:交换空间 = 2×物理内存
    • 物理内存 4-8GB:交换空间 = 物理内存
    • 物理内存 > 8GB:交换空间 = 0.5×物理内存(最小4GB)
  2. 交换使用监控

    • 关注 vmstat 中的 si/so 值,持续不为0表示内存不足
    • 设置 vm.swappiness(默认60)控制交换倾向:
      • 数据库服务器建议设为10-20
      • 桌面环境可保持默认
  3. 内存泄漏检测

    • 使用 smem -s swap 查看进程内存使用
    • valgrind 工具检测应用程序内存泄漏

(三)磁盘性能调优

知识点详解

1. 磁盘监控与分析

  • df -hT:显示文件系统类型和使用情况
    • 示例:df -hT | grep -v tmpfs
  • du -sh *:统计目录空间使用
    • 进阶用法:du -h --max-depth=1 /var
  • iotop:类似top的磁盘I/O监控工具
  • iostat -x 1:详细磁盘I/O统计

2. I/O调度算法

  • 可用算法:
    • CFQ:公平队列,适合通用负载
    • Deadline:保证请求截止时间,适合数据库
    • NOOP:简单FIFO,适合SSD和虚拟化环境
    • Kyber:新型算法,适合多队列设备
  • 查看与修改:
    • 查看:cat /sys/block/sdX/queue/scheduler
    • 修改:echo deadline > /sys/block/sda/queue/scheduler

3. 文件系统优化

  • 挂载选项优化:
    • noatime/relatime:减少元数据更新
    • data=writeback:ext4更快的写入性能(有风险)
    • discard:SSD TRIM支持
  • 日志模式选择:
    • journal:完全日志(最安全)
    • writeback:仅元数据日志(性能更好)

注意事项与最佳实践

  1. 不同存储介质优化

    • 机械硬盘
      • 定期碎片整理:e4defrag
      • 使用CFQ或Deadline调度
    • SSD
      • 启用TRIM:fstrim -v /
      • 使用NOOP或Kyber调度
      • 避免频繁写入,延长寿命
  2. RAID配置优化

    • RAID级别选择:
      • RAID0:高性能,无冗余
      • RAID1:高可用,容量减半
      • RAID5/6:平衡性能与冗余
    • 条带大小调整:根据工作负载选择合适大小
  3. LVM优化

    • 合理设置PE(Physical Extent)大小
    • 使用--stripes选项提高并行I/O
    • 定期检查vgdisplaylvdisplay
  4. 数据库专用优化

    • 使用裸设备或XFS文件系统
    • 设置合适的I/O调度器和预读参数
    • 考虑使用O_DIRECT绕过页面缓存

(四)综合调优策略

系统级优化

  1. 内核参数调整

    • /etc/sysctl.conf 关键参数:
      vm.swappiness = 10
      vm.dirty_ratio = 20
      vm.dirty_background_ratio = 10
      net.ipv4.tcp_fin_timeout = 30
      

  2. 服务管理优化

    • 使用 systemd-analyze blame 分析启动耗时
    • 禁用不必要的系统服务

应用级优化

  1. Web服务器调优

    • Nginx:调整 worker_processes 和 worker_connections
    • Apache:优化 MaxClients 和 KeepAlive
  2. 数据库调优

    • MySQL:调整 innodb_buffer_pool_size
    • PostgreSQL:优化 shared_buffers 和 work_mem

监控与维护

  1. 长期监控

    • 部署 Prometheus + Grafana
    • 设置合理的告警阈值
  2. 定期维护

    • 日志轮转:logrotate
    • 系统更新:安全补丁和性能改进

通过全面系统的调优,可以显著提升 Linux 系统的整体性能,满足不同业务场景的需求。调优时应遵循"测量-调整-验证"的循环,确保每次修改都带来实际的性能提升。

二、高级文件系统管理

Linux 的文件系统功能强大,掌握高级文件系统管理技巧能更好地管理和维护文件系统。这些技巧不仅适用于服务器管理员,也对开发人员和高级用户有很大帮助。

(一)LVM(逻辑卷管理)

知识点

LVM 的基本概念: LVM(Logical Volume Manager)是一种灵活的磁盘管理方案,由三个主要组件构成:

  1. 物理卷(PV):实际的物理磁盘或分区,通过pvcreate命令初始化
  2. 卷组(VG):由多个物理卷组成的一个逻辑存储池,使用vgcreate创建
  3. 逻辑卷(LV):从卷组中划分出来的逻辑存储区域,通过lvcreate创建,可以像普通分区一样进行格式化和挂载

LVM 的常用命令

  • 物理卷操作:pvcreate, pvdisplay, pvmove, pvremove
  • 卷组操作:vgcreate, vgextend, vgreduce, vgdisplay
  • 逻辑卷操作:lvcreate, lvextend, lvreduce, lvdisplay
  • 文件系统调整:resize2fs(ext文件系统)或xfs_growfs(xfs文件系统)

示例操作流程

  1. 初始化物理卷:pvcreate /dev/sdb1 /dev/sdc1
  2. 创建卷组:vgcreate myvg /dev/sdb1 /dev/sdc1
  3. 创建逻辑卷:lvcreate -L 20G -n mylv myvg
  4. 格式化并挂载:mkfs.ext4 /dev/myvg/mylv,然后mount /dev/myvg/mylv /mnt

注意事项

  1. 规划建议

    • 预留10-20%的卷组空间用于未来扩展
    • 为不同用途的数据创建独立的逻辑卷
    • 考虑使用条带化(striping)来提高I/O性能
  2. 扩展逻辑卷的正确步骤

    • 先扩展逻辑卷:lvextend -L +5G /dev/myvg/mylv
    • 再调整文件系统:resize2fs /dev/myvg/mylv
    • 对于XFS文件系统:xfs_growfs /mnt
  3. 缩减注意事项

    • ext文件系统可缩减,但需要先卸载文件系统
    • XFS文件系统不支持缩减
    • 缩减前务必备份重要数据

(二)文件系统快照

知识点

快照的作用: 文件系统快照可以在不中断服务的情况下,创建一个文件系统在某个时间点的状态副本,常用于:

  • 数据备份(不影响生产系统运行)
  • 软件测试(基于快照环境)
  • 系统恢复(快速回滚到之前状态)

LVM 快照实现

  1. 创建快照:lvcreate -s -n snap_mylv -L 5G /dev/myvg/mylv
    • -s表示创建快照
    • -L指定快照空间大小
  2. 挂载快照:mount /dev/myvg/snap_mylv /mnt/snapshot
  3. 使用后删除:lvremove /dev/myvg/snap_mylv

快照原理: 快照采用写时复制(Copy-on-Write)技术:

  • 初始时快照不占用实际空间
  • 当源卷数据块被修改时,原始数据会先复制到快照空间
  • 快照始终反映创建时的数据状态

注意事项

  1. 空间规划

    • 快照空间大小取决于源卷的预期变化量
    • 对于频繁更新的系统,建议分配源卷15-20%的空间
    • 监控快照空间使用:lvs命令查看"Snap%"列
  2. 性能影响

    • 快照会带来一定的I/O开销
    • 生产环境避免长期保留快照
    • 关键业务时段慎用快照
  3. 最佳实践

    • 为每个快照明确命名和用途
    • 建立快照生命周期管理策略
    • 结合备份策略使用(如将快照备份到远程存储)

(三)文件权限与 ACL(访问控制列表)

知识点

传统文件权限: Linux使用9位权限标志(rwxrwxrwx):

  • 前3位:所有者权限
  • 中3位:所属组权限
  • 后3位:其他用户权限
  • 数值表示:r=4, w=2, x=1

常用命令

  1. 修改权限:
    • 符号模式:chmod u=rwx,g=rx,o= file
    • 数值模式:chmod 750 file
  2. 修改所有者:chown user:group file
  3. 特殊权限:
    • SUID(4):chmod u+s file
    • SGID(2):chmod g+s dir
    • Sticky(1):chmod o+t /tmp

ACL(访问控制列表): 提供更精细的权限控制,允许为:

  • 特定用户设置权限
  • 特定组设置权限
  • 默认权限(对新创建文件生效)

ACL操作命令

  1. 设置ACL:
    • setfacl -m u:user:rwx file(为用户设置)
    • setfacl -m g:group:rx file(为组设置)
    • setfacl -d -m u:user:rw dir(默认ACL)
  2. 查看ACL:getfacl file
  3. 删除ACL条目:setfacl -x u:user file

注意事项

  1. 权限管理原则

    • 遵循最小权限原则
    • 定期审计权限设置
    • 使用组而非个人用户进行权限分配
  2. ACL实施要点

    • 确保文件系统挂载时启用ACL选项(mount -o acl)
    • ext*文件系统需要在格式化时启用ACL功能
    • ACL不影响传统权限显示(ls -l显示+号表示有ACL)
  3. 特殊场景处理

    • 共享目录:SGID+ACL组合
    • 临时目录:Sticky位防止用户删除他人文件
    • 可执行文件:SUID谨慎使用(安全风险)
  4. 权限问题排查

    • 检查有效权限:考虑用户主组和附加组
    • 查看SELinux上下文:ls -Z
    • 检查父目录权限(影响文件访问)

三、网络配置与安全

一、高级网络配置

知识点详解

网络接口配置
  1. 基本配置方法

    • 使用 ifconfig 命令进行临时配置(重启后失效)
    • 通过 /etc/sysconfig/network-scripts/ifcfg-eth0(CentOS/RHEL)或 /etc/network/interfaces(Debian/Ubuntu)进行永久配置
    • 可配置参数包括:
      • IPADDR:IP地址
      • NETMASK:子网掩码
      • GATEWAY:默认网关
      • DNS1/DNS2:DNS服务器
      • BOOTPROTO:获取IP方式(static/dhcp/none)
  2. nmcli 工具(NetworkManager命令行工具):

    nmcli con add con-name "my-connection" ifname eth0 type ethernet ip4 192.168.1.100/24 gw4 192.168.1.1
    

路由配置
  1. 基本命令

    • route -n:查看路由表
    • ip route show:更详细的显示方式
    • route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1:添加路由
    • ip route add 10.0.0.0/8 via 192.168.1.1:等效命令
  2. 永久路由配置

    • CentOS/RHEL:在 /etc/sysconfig/network-scripts/route-eth0 中添加
    • Ubuntu/Debian:在 /etc/network/interfaces 中添加 up route add -net...
网络Bonding技术
  1. 工作模式

    • mode=0(balance-rr):轮询模式,提高带宽
    • mode=1(active-backup):主备模式,提高可靠性
    • mode=4(802.3ad):LACP聚合,需要交换机支持
  2. 配置示例

    # 创建bond接口
    nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
    # 添加从属接口
    nmcli con add type bond-slave ifname eth0 master bond0
    nmcli con add type bond-slave ifname eth1 master bond0
    

注意事项与最佳实践

  1. 配置生效

    • CentOS 7+:systemctl restart NetworkManager
    • Ubuntu 18.04+:netplan apply(使用netplan的情况)
    • 传统方法:service network restart/etc/init.d/networking restart
  2. 路由配置验证

    • 使用 traceroutemtr 命令验证路由路径
    • 通过 ping 测试目标网络可达性
  3. Bonding模式选择建议

    • 服务器多网卡:推荐mode=4(需交换机支持LACP)
    • 关键业务网络:推荐mode=1(主备模式)
    • 测试环境:可使用mode=0(轮询模式)

二、防火墙与安全策略

防火墙技术详解

iptables
  1. 表与链结构

    • filter表(默认):INPUT、OUTPUT、FORWARD链
    • nat表:PREROUTING、POSTROUTING链
    • mangle表:用于特殊数据包修改
  2. 规则示例

    # 允许SSH访问
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    # 允许已建立的连接
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    # 默认拒绝所有其他入站流量
    iptables -P INPUT DROP
    

  3. 规则保存

    • CentOS:service iptables save
    • Ubuntu:apt-get install iptables-persistent,然后 netfilter-persistent save
firewalld
  1. 核心概念

    • zone(区域):定义信任级别(如public、internal、dmz)
    • service(服务):预定义的端口/协议组合(如http、ssh)
    • rich rule(富规则):高级过滤规则
  2. 常用命令

    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-port=8080/tcp
    firewall-cmd --reload
    firewall-cmd --list-all
    

  3. 高级功能

    • 端口转发:firewall-cmd --add-forward-port
    • 源地址限制:firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
SELinux深入
  1. 工作模式

    • Enforcing:强制执行安全策略
    • Permissive:记录违规但不阻止
    • Disabled:完全禁用
  2. 常用命令

    getenforce  # 查看当前状态
    setenforce 1|0  # 临时切换模式
    semanage port -l  # 查看端口标签
    restorecon -Rv /path  # 恢复文件上下文
    

  3. 策略管理

    • audit2allow:从审计日志生成自定义策略模块
    • sealert:分析SELinux拒绝事件

安全最佳实践

  1. 防火墙配置原则

    • 默认拒绝所有入站流量(firewall-cmd --set-default-zone=drop
    • 按需开放端口(推荐使用服务定义而非直接开放端口)
    • 定期审计规则(firewall-cmd --list-all-zones
  2. SELinux管理建议

    • 生产环境不应禁用SELinux
    • 遇到权限问题时,首先检查/var/log/audit/audit.log
    • 使用chconsemanage调整文件上下文而非完全禁用保护
  3. 综合安全措施

    • 结合fail2ban防止暴力破解
    • 使用TCP Wrappers(/etc/hosts.allow, /etc/hosts.deny)进行额外访问控制
    • 定期更新安全补丁(yum update/apt-get upgrade
  4. 监控与审计

    • 使用ss -tulnp监控开放端口
    • 通过journalctl -u firewalld查看防火墙日志
    • 定期检查/var/log/secure获取安全相关事件

四、Shell 脚本编程进阶

Shell 脚本编程是自动化管理 Linux 系统的重要手段,掌握进阶的 Shell 脚本编程技巧能显著提高工作效率。下面介绍几个关键的高级技巧和注意事项。

一、函数与参数传递

知识点详解

函数定义方式

  1. 使用 function 关键字:function myfunc() { ... }
  2. 简化形式:myfunc() { ... }

参数传递机制

  • 位置参数:$1(第一个参数)、$2(第二个参数)等
  • 特殊变量:
    • $#:参数个数
    • $*$@:所有参数
    • $0:脚本名称
    • $?:函数返回值

示例

function greet() {echo "Hello, $1! There are $# parameters in total."
}
greet "Alice" "Bob" "Charlie"

最佳实践

  1. 命名规范

    • 使用小写字母和下划线组合
    • 选择有描述性的名称,如 calculate_disk_usage()
    • 避免与系统命令重名
  2. 参数检查

function safe_divide() {if [ $# -ne 2 ]; thenecho "Usage: safe_divide dividend divisor"return 1fi# 函数逻辑...
}

  1. 返回值处理
    • 使用 return 返回状态码(0-255)
    • 通过命令替换 $(function) 获取输出

二、流程控制进阶

高级条件判断

case 语句示例

read -p "Enter your choice (start|stop|restart): " choice
case "$choice" instart)systemctl start nginx;;stop)systemctl stop nginx;;restart)systemctl restart nginx;;*)echo "Invalid choice"exit 1;;
esac

测试表达式增强

  • 字符串比较:=, !=, -z(空), -n(非空)
  • 数值比较:-eq, -ne, -gt, -lt, -ge, -le
  • 文件测试:-e(存在), -f(常规文件), -d(目录)

循环结构优化

for 循环变体

# 遍历数字范围
for i in {1..10}; doecho "Count: $i"
done# C风格for循环
for ((i=0; i<10; i++)); doecho "Index: $i"
done

while 读取文件

while IFS= read -r line; doecho "Processing: $line"
done < input.txt

循环控制技巧

  • break N:跳出N层循环
  • continue N:跳过N层循环的当前迭代
  • 使用 : 创建无限循环:while :; do ... done

三、文本处理工具进阶

grep 高级用法

常用选项组合

# 递归搜索目录,忽略大小写,显示行号
grep -rin "error" /var/log/# 只显示匹配的文件名
grep -rl "pattern" /path/# 使用扩展正则表达式,匹配多个模式
grep -E "error|warning|critical" logfile

上下文查看

  • -A NUM:显示匹配行后的NUM行
  • -B NUM:显示匹配行前的NUM行
  • -C NUM:显示匹配行前后各NUM行

sed 实战技巧

基本替换

# 替换每行第一个匹配
sed 's/old/new/' file# 全局替换
sed 's/old/new/g' file# 原地修改(BSD/macOS需要-i '',GNU需要-i)
sed -i.bak 's/old/new/g' file

高级编辑

# 删除空行
sed '/^$/d' file# 在匹配行后插入
sed '/pattern/a new line' file# 只处理第5-10行
sed '5,10s/old/new/g' file

awk 编程能力

基本结构

awk 'BEGIN {初始化} 模式 {动作} END {结束处理}' file

字段处理

# 打印特定列
awk '{print $1, $3}' data.txt# 使用自定义分隔符
awk -F: '{print $1, $6}' /etc/passwd# 条件过滤
awk '$3 > 100 {print $1, $2}' data.txt

统计计算

# 计算文件行数
awk 'END {print NR}' file# 列求和
awk '{sum+=$1} END {print sum}' data.txt# 分组统计
awk '{count[$1]++} END {for (i in count) print i, count[i]}' logfile

注意事项与调试技巧

  1. 调试方法

    • 使用 set -x 开启调试模式
    • 在关键位置添加 echo 打印变量值
    • 使用 bash -n script.sh 检查语法
  2. 性能优化

    • 减少子shell创建 $(command)
    • 使用 [[ ]] 代替 [ ] 进行测试
    • 批量处理文本时,尽量减少管道使用
  3. 可移植性

    • 在脚本开头指定解释器:#!/bin/bash
    • 避免使用bash特有的特性(如需要兼容其他shell)
    • 使用 command -v 检查命令是否存在
  4. 安全考虑

    • 始终引用变量:"$var"
    • 使用 read -r 防止反斜杠转义
    • 验证用户输入,避免命令注入

五、服务管理与监控

对 Linux 系统中的服务进行有效的管理和监控,能确保系统的稳定运行。以下是详细的管理和监控方法:

(一)系统服务管理

知识点详解

systemd 服务管理

systemd 是目前大多数现代 Linux 发行版(如 RHEL 7+/CentOS 7+、Ubuntu 16.04+、Debian 8+等)采用的系统和服务管理器。它提供了强大的服务管理功能:

  • 基本命令

    • systemctl start 服务名:启动指定服务(如 systemctl start nginx
    • systemctl stop 服务名:停止指定服务
    • systemctl restart 服务名:重启服务
    • systemctl reload 服务名:重新加载配置而不中断服务
    • systemctl enable 服务名:设置服务开机自启
    • systemctl disable 服务名:取消服务开机自启
    • systemctl status 服务名:查看服务状态
  • 高级功能

    • systemctl mask 服务名:完全禁用服务(防止手动或自动启动)
    • systemctl unmask 服务名:解除服务禁用
    • systemctl list-dependencies 服务名:查看服务依赖关系
服务配置文件

服务的配置文件通常位于以下目录:

  • /etc/systemd/system/:系统管理员自定义的服务配置
  • /usr/lib/systemd/system/:软件包安装的服务配置

配置文件示例(以 Nginx 为例):

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit[Install]
WantedBy=multi-user.target

注意事项

  1. 服务名称准确性

    • 使用 systemctl list-unit-files --type=service 查看所有服务
    • 使用 systemctl list-units --type=service --all 查看所有加载的服务单元
  2. 配置文件修改

    • 修改配置文件后必须执行 systemctl daemon-reload 重新加载配置
    • 建议先测试配置:systemd-analyze verify 服务名.service
  3. 其他注意事项

    • 谨慎使用 systemctl restart,可能会中断正在处理的请求
    • 对于关键服务,考虑使用 systemctl try-restart 只在服务运行时才重启
    • 检查服务日志:journalctl -u 服务名 -f(实时查看)

(二)系统监控工具

知识点详解

实时监控工具
  1. top/htop

    • top:经典的系统监控工具,显示进程、CPU、内存等信息
      • 常用快捷键:M(按内存排序)、P(按CPU排序)、1(显示所有CPU核心)
    • htop:增强版,支持彩色显示、鼠标操作、树状视图等
      • 安装:yum install htop(RHEL/CentOS)或 apt install htop(Debian/Ubuntu)
      • 功能:可以直观地查看进程树、直接杀死进程、调整优先级等
  2. vmstat

    • 报告系统整体性能指标
    • 示例:vmstat 1 5(每1秒采样,共5次)
    • 输出字段说明:
      • r:运行队列中的进程数
      • b:等待I/O的进程数
      • swpd:使用的虚拟内存量
      • free:空闲内存量
      • si/so:每秒从磁盘交换到内存/从内存交换到磁盘的数量
  3. iostat

    • 监控磁盘I/O性能
    • 示例:iostat -dx 1(显示扩展统计,每1秒刷新)
    • 重要指标:
      • %util:设备利用率(接近100%表示I/O瓶颈)
      • await:平均I/O响应时间
      • svctm:平均服务时间
  4. netstat/ss

    • netstat:传统网络统计工具
      • netstat -tulnp:查看监听端口和对应进程
      • netstat -s:显示网络统计摘要
    • ss:更高效的替代工具
      • ss -tulnp:功能同netstat但性能更好
      • ss -s:显示更详细的套接字统计
高级监控系统
  1. Nagios

    • 成熟的企业级监控解决方案
    • 特点:
      • 主动检查(定期轮询)
      • 强大的告警功能(邮件、短信等)
      • 丰富的插件生态系统
    • 典型监控项:服务状态、磁盘空间、CPU负载、网络连通性等
  2. Zabbix

    • 现代化的监控系统
    • 优势:
      • 支持主动和被动监控
      • 自动发现功能
      • 强大的可视化(图形、地图、仪表盘)
      • 灵活的告警配置
    • 监控范围:服务器、网络设备、应用程序、数据库等
  3. Prometheus+Grafana

    • Prometheus:专注于时间序列数据的监控系统
    • Grafana:强大的可视化工具
    • 组合优势:
      • 高效的指标收集和存储
      • 美观灵活的仪表盘
      • 适合云原生环境监控

注意事项

  1. 资源占用

    • 实时工具(如top/htop)会消耗系统资源,在高负载系统上谨慎使用
    • 考虑使用niceionice降低监控工具的优先级
  2. 监控配置

    • 对于Nagios/Zabbix:
      • 合理设置检查间隔(太频繁会增加负载,太稀疏可能错过问题)
      • 配置有意义的告警阈值(基于基线而非固定值)
      • 设置适当的告警升级策略
  3. 数据保留

    • 规划监控数据的保留周期
    • 对于长期趋势分析,考虑数据归档策略
  4. 安全性

    • 确保监控系统本身的安全(访问控制、加密传输等)
    • 敏感数据(如密码)在配置文件中要妥善处理
  5. 性能基准

    • 建立系统性能基准,便于识别异常
    • 定期审查监控指标和告警规则的有效性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96694.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

14.苹果ios逆向-app的调试方式

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

深入理解 React useEffect

一、useEffect基础概念 1、什么是副作用&#xff08;Side Effects&#xff09;&#xff1f; 在React中&#xff0c;副作用是指那些与组件渲染结果无关的操作&#xff0c;例如&#xff1a; 数据获取&#xff08;API调用&#xff09;手动修改DOM设置订阅或定时器记录日志 2、useE…

Yapi中通过MongoDB修改管理员密码与新增管理员

如何在Docker部署的Yapi中通过MongoDB修改管理员密码与新增管理员便捷管理Yapi权限&#xff1a;无需前端重置&#xff0c;直接通过数据库操作修改密码及添加管理员一、进入MongoDB容器并连接数据库 首先&#xff0c;通过以下命令进入运行中的MongoDB容器&#xff1a; docker ex…

【EasyR1】GRPO训练

官方github&#xff1a;https://github.com/hiyouga/EasyR1 参考&#xff1a;https://opendeep.wiki/hiyouga/EasyR1/quickstart 代码和环境配置 github&#xff1a;https://github.com/hiyouga/EasyR1 新建一个虚拟环境&#xff1a; python -m venv easyr1 source easyr1/b…

2025年KBS SCI1区TOP,新颖奖励与ε-贪婪衰减Q-learning算法+局部移动机器人路径规划,深度解析+性能实测

目录1.摘要2.新颖奖励与ε-贪婪衰减Q-learning算法3.结果展示4.参考文献5.代码获取6.算法辅导应用定制读者交流1.摘要 路径规划是移动机器人的核心任务&#xff0c;需要在高效导航的同时规避障碍。本文提出了一种改进Q-learning算法——定制化奖励与ε-贪婪衰减Q-learning&…

运行npm run命令报错“error:0308010C:digital envelope routines::unsupported”

下载的前后端分离架构的开源项目&#xff0c;运行“npm run serve”命令启动前端服务时报错“error:0308010C:digital envelope routines::unsupported”&#xff0c;这个错误通常是由于Node.js版本与项目依赖不兼容导致的&#xff0c;特别是在Node.js v17版本中&#xff0c;百…

AI计算提效关键。自适应弹性加速,基于存算架构做浮点运算

一、自适应弹性加速是提升芯片能效比的有力手段自适应弹性加速技术是现代芯片设计中提升能效比的关键路径之一。它摒弃了传统芯片在设计时采用的静态、固化的资源分配与功能设定模式&#xff0c;通过引入动态调整机制&#xff0c;使得芯片能够根据实时的应用需求和负载变化&…

Spring Boot测试陷阱:失败测试为何“传染”其他用例?

一个测试失败&#xff0c;为何“传染”其他测试&#xff1f;——Spring Boot 单元测试独立性与泛型陷阱实战解析 &#x1f6a9; 问题背景 在日常开发中&#xff0c;我们常会遇到这样的场景&#xff1a; 正在开发新功能 A&#xff0c;写了一个 testFeatureA() 测试方法&#xff…

Web开发中的CGI:通用网关接口详解

一、CGI的设计意图&#xff1a;解决Web的"静态"困境 在CGI出现之前&#xff0c;Web服务器只能做一件事&#xff1a;返回预先写好的静态文件&#xff08;HTML、图片等&#xff09;。每个用户看到的内容都是一模一样的。 设计意图很简单但却革命性&#xff1a; 让Web服…

在 SSMS 中查找和打开已保存的查询文件

在 SSMS 中查找和打开已保存的查询文件 在 SQL Server Management Studio (SSMS) 中&#xff0c;您可以轻松地查找并打开已保存的查询文件&#xff08;通常以 .sql 扩展名保存&#xff09;。SSMS 提供了直观的界面支持直接打开这些文件&#xff0c;无需额外工具。以下是详细步骤…

Protues使用说明及Protues与Keil联合仿真实现点亮小灯和流水灯

目录 1Protues介绍及新建工程 1.1进入软件 1.2文件创建 1.3默认选项 1.5设计面板 1.6添加元器件 1.7终端模式 1.8激励源模式 1.9探针模式 1.10仪表 1.11二维直线 1.12字符 2 Protues电路原理图仿真 2.1 220V交流电转5V直流电稳压电路仿真原理图 2.1.1 仿真原理图…

Linux PCI 子系统:工作原理与实现机制深度分析

Linux PCI 子系统&#xff1a;工作原理与实现机制深度分析 1. Linux PCI 子系统基础概念 1.1 PCI/PCIe 基础概念回顾 总线拓扑&#xff1a; PCI/PCIe 系统是一个树形结构。CPU 连接到 Root Complex (RC)&#xff0c;RC 连接至 PCIe 交换机 (Switch) 和 PCIe 端点设备 (Endpoint…

RabbitMQ 全面指南:架构解析与案例实战

目录一、RabbitMQ 简介1.1 什么是 RabbitMQ1.2 RabbitMQ 的核心组件1.3 RabbitMQ 的应用场景二、环境搭建2.1 安装 RabbitMQ2.2 安装 Erlang2.3 配置 RabbitMQ三、RabbitMQ 核心概念与工作原理3.1 消息模型3.2 交换机类型3.3 队列特性3.4 消息确认机制四、Spring Boot 集成 Rab…

6.2 el-menu

一、 <el-menu>: 菜单组件&#xff0c;定义了侧边栏内部的具体导航项、层级结构和交互行为。<el-container><!-- 侧边栏容器 --><el-aside width"200px"><!-- 菜单内容 --><el-menu default-active"1" class"el-men…

Windows 笔记本实现仅关屏仍工作:一种更便捷的 “伪熄屏” 方案

在使用 Windows 笔记本作为临时服务器或需要后台持续运行程序时&#xff0c;我们常面临一个需求&#xff1a;关闭屏幕以节省电量或减少光污染&#xff0c;同时保持系统正常工作。然而&#xff0c;网络上流传的诸多方法往往存在局限&#xff0c;要么无法兼顾 “熄屏” 与 “工作…

Linux应急响应一般思路(二)

进程排查进程(Process)是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础无论是在Windows系统还是Linux系统中&#xff0c;主机在感染恶意程序后&#xff0c;恶意程序都会启动相应的进程&#x…

基于 SkyWalking + Elasticsearch + Grafana 的可落地调用链监控方案

这个方案成熟稳定、社区活跃、部署相对简单,非常适合中小型团队作为第一代调用链系统落地。 一、核心组件选型与角色 组件 版本建议 角色 优点 Apache SkyWalking v9.x+ 核心平台 (采集、分析、存储、UI) 国产优秀,Java Agent无侵入接入,功能全面,性能损耗低 Elasticsearc…

APP逆向——某站device-id参数

免责声明本博客所涉及的 爬虫技术、逆向分析方法 仅用于 学习、研究和技术交流。文中所有示例代码、工具和方法&#xff0c;均不得用于以下行为&#xff1a;未经授权的数据采集侵犯他人知识产权干扰或破坏正常业务系统任何违反国家法律法规的行为因读者将本教程内容用于 非法用…

C/C++数据结构之循环链表

概述循环链表本质上也是一个单向或双向链表&#xff0c;但其最后一个节点的指针并不指向NULL&#xff0c;而是指向链表的第一个节点&#xff0c;从而形成一个闭合的环。这种结构使得在遍历链表时&#xff0c;可以从任意一个节点开始&#xff0c;并最终回到起始点。音乐播放软件…

Mongodb的教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、mongodb是什么&#xff1f; 二、mongodb的下载与安装教程 三、mongodb的常见操作 总结 前言 在当今数据驱动的世界中&#xff0c;数据库技术是构建高效…