重生之我要当云原生大师(十六)调优系统性能

目录

一、监控器和调优器如何工作?

二、如何调控Linux的进程优先级(nice)?   

三、进程调度的意义?


一、监控器和调优器如何工作?

在红帽企业Linux(RHEL)中,监控器和调优器是用于系统性能分析和优化的关键工具。它们帮助管理员了解系统资源的使用情况,并根据需求调整系统配置以提高性能。以下是它们的工作原理和常用工具:


1. 监控器的工作原理

监控器用于实时或定期收集系统的性能数据,包括 CPU、内存、磁盘、网络等资源的使用情况。通过分析这些数据,管理员可以识别性能瓶颈和潜在问题。

常用监控工具

  • top
    • 实时显示系统的进程和资源使用情况。
    • 示例:

top

    • 显示信息包括 CPU 使用率、内存占用、进程列表等。
  • htop
    • top 的增强版,提供更直观的界面和更多功能。
    • 示例:

htop

  • vmstat
    • 报告系统的进程、内存、分页、块 I/O、CPU 活动等。
    • 示例:

vmstat 1

    • 每 1 秒刷新一次数据。
  • iostat
    • 监控系统的磁盘 I/O 和 CPU 使用情况。
    • 示例:

iostat -x 1

    • 每 1 秒刷新一次扩展统计信息。
  • sar(System Activity Reporter)
    • 收集、报告和保存系统活动信息。
    • 示例:

sar -u 1 5

    • 每 1 秒报告一次 CPU 使用率,共报告 5 次。
  • nmon
    • 实时监控 CPU、内存、磁盘、网络等资源。
    • 示例:

nmon

  • netstat 和 ss
    • 监控网络连接和统计信息。
    • 示例:

netstat -tuln

ss -tuln

  • dstat
    • 结合 vmstat、iostat 和 netstat 的功能,提供更全面的监控。
    • 示例:

dstat


2. 调优器的工作原理

调优器用于根据监控数据调整系统配置,以优化性能。它可以通过修改内核参数、调整资源分配或优化应用程序配置来实现。

常用调优工具

  • tuned
    • RHEL 自带的动态调优工具,提供预定义的调优配置文件。
    • 示例:
      • 查看当前配置文件:

tuned-adm active

      • 切换到高性能模式:

tuned-adm profile throughput-performance

  • sysctl
    • 动态修改内核参数。
    • 示例:
      • 查看当前参数:

sysctl -a

      • 修改参数:

sysctl -w net.ipv4.tcp_tw_reuse=1

  • nice 和 renice
    • 调整进程的优先级。
    • 示例:
      • 启动低优先级进程:

nice -n 19 /path/to/command

      • 调整运行中进程的优先级:

renice -n 10 -p 1234

  • ionice
    • 调整进程的 I/O 优先级。
    • 示例:
      • 启动低 I/O 优先级进程:

ionice -c 3 /path/to/command

  • ulimit
    • 设置用户资源限制(如打开文件数、进程数等)。
    • 示例:
      • 查看当前限制:

ulimit -a

      • 修改限制:

ulimit -n 65535

  • grub 配置
    • 修改内核启动参数以优化性能。
    • 示例:
      • 编辑 /etc/default/grub,添加或修改参数:

GRUB_CMDLINE_LINUX="transparent_hugepage=never"

      • 更新 GRUB 配置:

grub2-mkconfig -o /boot/grub2/grub.cfg


3. 监控与调优的工作流程

  1. 监控
    • 使用工具(如 top、vmstat、iostat)收集系统性能数据。
    • 分析数据,识别性能瓶颈(如 CPU 过载、内存不足、磁盘 I/O 瓶颈等)。
  2. 调优
    • 根据监控结果,使用调优工具(如 tuned、sysctl)调整系统配置。
    • 测试调优效果,确保性能提升。
  3. 验证
    • 再次监控系统,确认调优后的性能是否满足需求。
    • 如果问题未解决,重复上述步骤。

二、如何调控Linux的进程优先级(nice)?   

在 Linux 中,nice 和 renice 是用于调整进程优先级的工具。进程优先级(Nice 值)决定了进程在 CPU 调度时的优先级,范围从 -20(最高优先级)到 19(最低优先级)默认情况下,进程的 Nice 值为 0。

以下是使用 nice 和 renice 调控进程优先级的方法:


1. 使用 nice 启动进程并设置优先级

nice 用于在启动进程时设置其优先级。

语法

nice -n <nice_value> <command>

  • <nice_value>:优先级值(范围:-20 到 19)。
  • <command>:要运行的命令。

示例

  • 以最低优先级(Nice 值为 19)启动一个进程:

bash

复制

nice -n 19 /path/to/command

  • 以最高优先级(Nice 值为 -20)启动一个进程:

nice -n -20 /path/to/command


2. 使用 renice 调整运行中进程的优先级

renice 用于调整已经运行的进程的优先级。

语法

renice -n <nice_value> -p <pid>

  • <nice_value>:新的优先级值(范围:-20 到 19)。
  • <pid>:进程的 PID。

示例

  • PID 为 1234 的进程的优先级调整为 10:

renice -n 10 -p 1234

  • 将用户 john 的所有进程的优先级调整为 5:

renice -n 5 -u john


3. 查看进程的优先级

可以使用 ps 或 top 查看进程的 Nice 值。

使用 ps

ps -o pid,ni,comm -p <pid>

  • pid:进程 ID。
  • ni:Nice 值。
  • comm:命令名称。

示例

ps -o pid,ni,comm -p 1234

输出示例:

  PID  NI COMMAND

 1234  10 my_command

使用 top

  1. 运行 top:

top

  1. 按 f 键,选择 NI(Nice 值)列显示。
  2. 查看进程的 Nice 值。

4. 注意事项

  • 权限要求
    • 普通用户只能降低进程优先级(Nice 值为正数)。
    • 只有 root 用户可以提高进程优先级(Nice 值为负数)。
  • 优先级影响
    • 高优先级(Nice 值为负数)的进程会获得更多的 CPU 时间。
    • 低优先级(Nice 值为正数)的进程会获得较少的 CPU 时间。
  • 避免滥用
    • 不要将所有进程设置为高优先级,否则可能导致系统资源竞争和性能下降。

5. 实际应用场景

  • 后台任务
    • 将后台任务的优先级设置为较低(如 Nice 值为 19),避免影响前台任务。
  • 关键任务
    • 将关键任务的优先级设置为较高(如 Nice 值为 -10),确保其获得足够的 CPU 资源。
  • 批量处理
    • 在运行批量任务时,适当降低优先级,避免影响其他用户或服务。

6. 示例脚本

以下是一个简单的脚本,用于启动一个低优先级的后台任务:

#!/bin/bash

# 启动一个低优先级的后台任务

nice -n 19 /path/to/long_running_task &

三、进程调度的意义?

进程调度的意义在于:

  1. 提高 CPU 利用率。
  2. 实现多任务并发。
  3. 保证公平性。
  4. 支持实时任务。
  5. 优化系统性能。
  6. 支持优先级管理。
  7. 减少响应时间。
  8. 支持负载均衡。
  9. 防止进程饥饿。
  10. 支持系统稳定性。

通过合理的进程调度,操作系统能够高效、公平地管理 CPU 资源,满足不同任务的需求,提升用户体验和系统性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值