2023-03-31调优系统性能

调整调优配置文件

  • 配置静态调优
    tuned守护进程会在服务启动时或选择新的调优配置文件时应用系统设置。静态调优会对配置文件中由tuned在运行是应用的预定义kernel参数进行配置。对于静态调优而言,内核参数是针对整体性能预期而设置的,不会随着活跃度的变化而进行调整。
  • 配置动态调优
    对于动态调优而言,tuned守护进程会监视系统活动,并根据运行时行为的变化来调整设置。从所选调优配置文件中声明初始化设置开始,动态调优会不断进行调优调整以适应当前工作负载。
  • 安装并启用tuned
dnf install -y tuned
systemctl enable --now tuned
  • tuned选择调优配置文件
    tuned应用提供的配置文件分为一下几个类别:
    -- 节能型配置文件
    -- 性能提升型配置文件
    -- 性能提升型配置文件中包括侧重于一下方面的配置文件:
    存储和网络的低延迟
    存储和网络的高吞吐量
    虚拟机性能
    虚拟化主机性能
  • RHEL中分发的调优配置文件
    -- 均衡:非常适合需要在节能和性能之间进行折中的系统
    -- desktop:从balanced配置文件衍生而来,加快交互式应用响应速度
    -- throughput-performance:调优系统,以获得最大吞吐量
    -- latency-performance:非常适合需要牺牲能耗来获取低延迟的服务器系统
    -- 网络延迟:从latency-performance配置文件衍生而来。它可以启用额外的网络调优参数,以提供低网络延迟。
    -- 网络吞吐量:从throughput-performance配置文件衍生而来,应用其它网络调优参数,以获得最大网络吞吐量。
    -- 节能:调优系统,以最大程度实现节能
    -- oracle:基于throught-performance配置文件,针对oracle数据库负载进行优化
    -- virtual-guest:当系统在虚拟机上运行时,调优系统以获得最高性能
    -- virtual-host:当系统充当虚拟机的主机时,调优系统以获得最高性能
  • 从命令行管理配置文件
    tuned-adm命令可用于更改tuned守护进程的设置。tuned-adm命令可以查询当前设置、列出可用的配置文件、为系统推荐调优配置文件、直接更改配置文件或关闭调优。
#查看当前活动的调优配置文件
[root@myhost ~]# tuned-adm active
Current active profile: balanced

#列出所有可用的调优配置文件
[root@myhost ~]# tuned-adm list
Available profiles:
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- hpc-compute                 - Optimize for HPC compute workloads
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- powersave                   - Optimize for low power consumption
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests

#调整将当前活动的配置文件切换成更符合系统的当前调优要求的其它配置文件
[root@myhost ~]# tuned-adm profile throughput-performance
[root@myhost ~]# tuned-adm active
Current active profile: throughput-performance

#查看系统推荐的调优配置文件
[root@myhost ~]# tuned-adm recommend
balanced

#要恢复当前配置文件所作的设置更改,可切换到另一个配置文件或停用tuned守护进程
[root@myhost ~]# tuned-adm off  #关闭调整活动
[root@myhost ~]# tuned-adm active
No current active profile..
[root@myhost ~]# tuned-adm profile balanced
[root@myhost ~]# tuned-adm active
Current active profile: balanced

影响进程调度

现代计算机系统中包括单个CPU且执行单个指令的低端系统,也包括高性能超级计算机;但是会面临一个问题:运行的进程数超出了其CPU的数量;通过使用时间片或多任务技术,操作系统可以处理超出CPU单元数的进程,调度器在单个核心上的进程之间切换,给人一种多个进程在同时运行的印象。

  • 相对优先级
    -- 不同进程的重要水平各不相同
    -- 进程调度程序可以配置为针对不同的进程采用不同的调度策略,默认的调度策略为SCHED_OTHER(SCHED_NORMAL)
    -- 使用SCHED_NORMAL策略运行的进程指定相对优先级,称为nice值
    -- nice的优先级值-20(最高优先级)到19(最低优先级)
  • 设置nice的级别和权限
    -- 为很占CPU资源分配较低的优先级,可防止对其它进程产生负面影响,降低优先级,需要root权限;
    -- 非特权用户可以提高自己的nice优先级,但不能降低,也不可以修改,其它用户的nice优先级
  • 使用top可以查看nice优先级(NI列为nice优先级)
[root@myhost ~]# top
top - 11:02:16 up 12 days, 16:11,  1 user,  load average: 0.06, 0.05, 0.05
Tasks: 233 total,   1 running, 232 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.9 us,  2.1 sy,  0.0 ni, 96.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7972392 total,  1825272 free,  2889596 used,  3257524 buff/cache
KiB Swap: 16777212 total, 16777212 free,        0 used.  4777096 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  851 root      20   0  396668   4248   3388 S  14.3  0.1   2899:41 accounts-daemon
 2068 gdm       20   0 3672668 123608  56112 S   0.7  1.6  32:57.06 gnome-shell
 9917 root      20   0  162232   2420   1596 R   0.7  0.0   0:00.05 top
 1289 root      20   0  454716  28764  27108 S   0.3  0.4   2:11.27 rsyslogd
 2041 root      20   0  168236   6940   5300 S   0.3  0.1   0:05.31 sshd
 4579 qemu      20   0 2907480   2.0g  11224 S   0.3 25.9 130:11.23 qemu-kvm
    1 root      20   0  191520   4560   2672 S   0.0  0.1   8:14.73 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.40 kthreadd
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
    6 root      20   0       0      0      0 S   0.0  0.0   0:05.45 ksoftirqd/0
    7 root      rt   0       0      0      0 S   0.0  0.0   0:00.87 migration/0
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S   0.0  0.0   2:05.40 rcu_sched
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain
  • 启动不同nice级别的进程
[root@serverb cron.hourly]# sleep 600 &
[1] 20741
[root@serverb cron.hourly]# ps -o pid,comm,nice 20741
  PID COMMAND          NI
20741 sleep             0
[root@serverb cron.hourly]# nice sleep 600 &
[2] 20780
[root@serverb cron.hourly]# ps -o pid,comm,nice 20780
  PID COMMAND          NI
20780 sleep            10
[root@serverb cron.hourly]# nice -n 15 sleep 600 &
[3] 20810
[root@serverb cron.hourly]# ps -o pid,comm,nice 20810
  PID COMMAND          NI
20810 sleep            15
[root@serverb cron.hourly]# ps -o pid,comm,nice | grep sleep
20741 sleep             0
20780 sleep            10
20810 sleep            15

#更改现有进程的优先级
[root@serverb cron.hourly]# renice -n 19 20780
20780 (process ID) old priority 10, new priority 19
[root@serverb cron.hourly]# ps -o pid,comm,nice | grep sleep
20741 sleep             0
20780 sleep            19
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容