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/bicheng/94803.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94803.shtml

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

相关文章

【科普向-第五篇】MISRA C实战手册:规则与指令全解析

目录 引言 1.1 起源与目的 1.2 规则体系结构 一.变量与类型&#xff08;Rule 1–9&#xff09; Rule 1.1 — 变量必须显式初始化&#xff08;Mandatory&#xff09; Rule 1.2 — 使用固定宽度整数类型&#xff08;Mandatory&#xff09; Rule 1.3 — 避免未定义行为的类…

Custom SRP - Shadow Masks

截图展示的是:近处实时阴影,远处烘焙阴影1 Baking Shadows阴影让场景更具层次感和真实感,但是实时阴影渲染距离有限,超出阴影距离的世界由于没有阴影显得很“平”.烘焙的阴影不会受限于阴影距离,可以与实时阴影结合解决该问题:最大阴影距离之内使用实时阴影最大阴影距离之外用烘…

Python爬虫实战:研究spidermonkey库,构建电商网站数据采集和分析系统

1 引言 1.1 研究背景 互联网数据已成为商业决策、学术研究的核心资源,网络爬虫作为数据获取的主要工具,在静态网页时代发挥了重要作用。然而,随着 AJAX、React、Vue 等技术的广泛应用,超过 70% 的主流网站采用 JavaScript 动态生成内容(如商品列表滚动加载、评论分页加载…

智能驾驶规划技术总结

前言 本文主要对智能驾驶规划技术相关知识进行初步探究和总结&#xff0c;以加深理解&#xff0c;及方便后续学习过程中查漏补缺。 分层规划策略 寻径 A*算法 概念 节点&#xff1a;网格化后的每一个最小单元父节点&#xff1a;路径规划中用于回溯的节点列表&#xff1a;需要不…

05 网络信息内容安全--对抗攻击技术

1 课程内容 网络信息内容获取技术网络信息内容预处理技术网络信息内容过滤技术社会网络分析技术异常流量检测技术对抗攻击技术 2 对抗攻击概述 2.1 对抗攻击到底是啥&#xff1f; 咱们先举个生活例子&#xff1a; 你平时看苹果能认出来 —— 红颜色、圆溜溜、带个小揪揪。但如果…

【FPGA】VGA显示-贪吃蛇

这个项目实现了一个完整的贪吃蛇游戏&#xff0c;使用Verilog HDL在FPGA上构建。项目包含了VGA显示控制、按键消抖处理、游戏逻辑和图形渲染等多个模块&#xff0c;展示了数字逻辑设计的综合应用。 项目概述 该设计使用硬件描述语言实现了经典贪吃蛇游戏的所有核心功能&#…

从PostgreSQL到人大金仓(KingBase)数据库迁移实战:Spring Boot项目完整迁移指南

&#x1f4d6; 前言 在国产化浪潮的推动下&#xff0c;越来越多的企业开始将数据库从国外产品迁移到国产数据库。本文将以一个真实的Spring Boot项目为例&#xff0c;详细介绍从PostgreSQL迁移到人大金仓&#xff08;KingBase&#xff09;数据库的完整过程&#xff0c;包括遇到…

Docker 入门指南:从基础概念到常见命令及高级工具详解

Docker 入门指南&#xff1a;从基础概念到常见命令及高级工具详解 大家好&#xff01;今天我们来聊聊 Docker 这个强大的容器化工具。如果你是一个开发者、运维工程师&#xff0c;或者只是对云计算和容器技术感兴趣的人&#xff0c;Docker 绝对值得你深入了解。它可以帮助你轻松…

Redis数据持久化——RDB快照和Aof日志追加

Redis数据持久化数据持久化&#xff1a;将内存中的数据保存到磁盘中。作用&#xff1a;让Redis服务重启后可以恢复之前的数据。一、Redis数据持久化的方式&#xff1a;RDB&#xff08;快照&#xff09;&#xff1a;将内存中Redis缓存的所有数据&#xff0c;都以二进制字符串的方…

浅聊达梦数据库物理热备的概念及原理

达梦数据库&#xff08;DM Database&#xff09;的物理热备份&#xff0c;核心是在数据库不中断业务&#xff08;联机&#xff09; 的前提下&#xff0c;通过对数据库物理文件&#xff08;如数据文件、控制文件、日志文件等&#xff09;的增量或全量复制&#xff0c;实现数据备…

C++ 中 ::(作用域解析运算符)的用途

C 中 ::&#xff08;作用域解析运算符&#xff09;的应用场景详解 在 C 中&#xff0c;:: 被称为 作用域解析运算符&#xff08;Scope Resolution Operator&#xff09;&#xff0c;用于明确指定某个名字&#xff08;变量、函数、类型等&#xff09;所属的命名空间或类作用域&a…

鸿蒙中CPU活动分析:CPU分析

1 CPU分析的核心概念与重要性 CPU活动分析&#xff08;CPU Profiling&#xff09;是性能优化的核心手段&#xff0c;它通过测量代码执行时间&#xff0c;帮助开发者定位性能瓶颈。应用的响应速度直接影响用户体验&#xff0c;过长的加载时间或卡顿会导致用户流失 1.1 为什么C…

十大经典 Java 算法解析与应用

在 Java 开发的世界里&#xff0c;算法就如同构建大厦的基石&#xff0c;它们支撑着各种复杂应用的高效运行。无论是处理海量数据的排序&#xff0c;还是在庞大结构中精准查找信息&#xff0c;合适的算法都能大幅提升程序的性能。接下来&#xff0c;我们将深入解析十大经典的 J…

从感知机到大模型:神经网络的全景解析与实践指南

从感知机到大模型&#xff1a;神经网络的全景解析与实践指南在当今 AI 时代&#xff0c;我们身边的每一个智能应用 —— 从手机里的人脸识别、语音助手&#xff0c;到聊天机器人 ChatGPT、图像生成工具 MidJourney&#xff0c;再到自动驾驶的环境感知系统 —— 背后都离不开一个…

核心篇(下):Transformer 架构详解(程序员视角・实战版)

在上一篇 NLP 预处理文章中&#xff0c;你已经掌握了 “文本→向量” 的转化流程&#xff0c;解决了 DashScope Tokenizer 的调用问题。但此时你可能会问&#xff1a;“这些向量输入模型后&#xff0c;大模型是如何理解长文本语义的&#xff1f;比如‘小明告诉小红&#xff0c;…

FreeRTOS学习笔记(四):任务执行与切换

第一部分&#xff1a;FreeRTOS 任务是如何执行的&#xff1f; FreeRTOS 是一个抢占式的实时操作系统内核。其任务执行遵循一个核心原则&#xff1a;调度器&#xff08;Scheduler&#xff09;总是选择当前处于“就绪态”&#xff08;Ready&#xff09;的最高优先级任务来运行。 …

区块链技术探索与应用:从密码学奇迹到产业变革引擎

&#x1f31f; Hello&#xff0c;我是蒋星熠Jaxonic&#xff01; &#x1f308; 在浩瀚无垠的技术宇宙中&#xff0c;我是一名执着的星际旅人&#xff0c;用代码绘制探索的轨迹。 &#x1f680; 每一个算法都是我点燃的推进器&#xff0c;每一行代码都是我航行的星图。 &#x…

如何监控和调优JVM的内存使用情况?

监控和调优 JVM 内存使用是保障 Java 应用稳定性和性能的核心手段&#xff0c;需要结合监控工具、关键指标分析和针对性调优策略。以下是具体的实施方法&#xff1a;一、JVM 内存监控&#xff1a;工具与核心指标监控的目标是掌握内存使用趋势、GC 行为、线程状态等&#xff0c;…

把用户输进来的明文密码做一层 MD5 哈希

这一行干的就是&#xff1a;把用户输进来的明文密码先做一层 MD5 哈希&#xff0c;再把得到的 32 位十六进制字符串存到变量 password 里。 逐段拆开&#xff1a;password.getBytes() 把字符串转成字节数组&#xff0c;MD5 算法只能对字节/字节数组做运算。DigestUtils.md5Dige…

jeecg-boot3.7.0对接钉钉登录(OAuth2.0)

当前的jeecg-boot 是3.7.0前端问题&#xff1a;1.前端的路由vue-router的版本需要固定死。要不然会报page_not_found router the same.这种奇奇怪怪的问题。 就是把package.json的“^”&#xff0c;这个符号&#xff0c;删掉。&#xff08;或者全局搜索&#xff0c;这个page no…