乐趣区

关于linux运维:快速解决-Linux-内核问题一站式运维工具-ocops-介绍

导读:明天,Linux 内核治理曾经成为古代计算机领域中不可或缺的一部分。然而,因为问题简单多样,解决起来也须要更加业余的常识和教训。而且,因为各种运维工具扩散、入口不对立、治理不零碎,局部工具参数和子命令数量宏大,对于一般运维人员应用来说十分艰难。

为了进步运维效率,OpenCloudOS 运维工具 SIG 开发了 oc-ops,作为一款一站式 OS 运维工具集,它能够帮忙用户更好地对立、系统地治理运维工具,并晋升相干问题的定位效率。本文将具体介绍 oc-ops 的性能和劣势,让读者更全面地理解这个工具集的重要性。

一、开发背景

在治理 Linux 内核时,开发者经常面临着很多问题,比方定位 TCP 协定栈中导致数据包失落的环节,这些问题可能须要业余的常识和教训能力解决。还有些场景不足必要的工具来解决问题,甚至有时即便有相应的工具,也很难应用。

另外一个问题是,运维工具扩散、入口不对立、治理不零碎,没有一个工具或平台可能为所有的问题提供解决方案,并且没有对立的入口或集中的形式来应用和治理这些工具。

例如,blktrace、blkparse 和 btt 等磁盘 IO 监测工具生成的数据量微小,人工从中找出超过工夫阈值的 IO 申请十分耗时。局部工具的参数和子命令数量达到数百个,对于一般的运维人员来说学习应用须要破费大量的工夫。

为了解决这些问题,OpenCloudOS 运维工具 SIG 开发了一款一站式 OS 运维工具集——oc-ops,它将开发和运维人员的专业知识通过工具进行固化和传承,并自主研发了一些子命令来补全相干工具。

oc-ops 能够帮忙对立、系统地治理运维工具,从而进步运维效率。无论你是 Linux 开发人员,还是系统管理员,oc-ops 都能够帮忙你更高效地解决各种问题。

二、oc-ops 语法格局

1、根本语法格局

Usage: oc-ops [opt] <subcmd> [opt] [cmdargs]

oc-ops [opt] 反对的参数:

oc-ops -h:查看 oc-ops 用法,将列出 oc-ops 反对的所有 subcmd。oc-ops -v:查看 oc-ops 的版本号。oc-ops -d:以调试模式运行 oc-ops,不便 oc-ops 命令本身问题的定位。为便于应用、使 oc-ops 易于上手,oc-ops 采纳如下策略:

  • 反对 tab 键主动扩大 / 补全的性能。
  • 限度子命令参数的个数,尽量采纳自然语言代替参数(利用下面的主动扩大放慢输入速度)。
  • 命令级数临时限定在 4 级。

2、子命令用法

通过 oc-ops <subcmd> -h,可查看每个子性能的具体用法。

三、oc-ops 已反对工具简介

1、oc-ops 现状

oc-ops 的命令在继续开发中,应用前倡议通过:yum install -y opencloudos-tools 装置 / 降级 opencloudos-tools 包,以便装置 / 更新到最新的版本。

oc-ops 以后实现开发的子命令如下:

  • oc-ops mem checkcost
  • oc-ops io latency
  • oc-ops cpu irq latency

2、oc-ops mem chechcost

性能 :诊断内存耗费状况,判断哪个 / 多个畛域导致内存耗费减少,并给出下一步定位倡议。畛域白名单为:Buffers/Cached、AnonPages、Shmem、Slab、Vmalloc、HugePages。

  • 如果是 Buffers/Cached 内存耗费减少,则倡议执行:oc-ops mem checkcost -d,清空缓存后从新统计。
  • 如果是 AnonPages 内存耗费减少,将各过程按耗费内存的大小进行排序输入。(用户态业务过程的内存泄露需由业务定位)
  • 如果是 Shmem 内存耗费减少,将主动扫描是否有哪个内存文件系统耗用内存过多。
  • 如果是 Slab 内存耗费减少,将输入 slabtop 信息,并倡议用户执行:oc-ops mem kernelleak,进行内存泄露检测。
  • 如果是 Vmalloc 内存耗费减少,则输入 /proc/vmallocinfo 同分类汇总统计后的信息,并倡议用户执行:oc-ops mem kernelleak,进行内存泄露检测。
  • 如果是 HugePages 内存耗费减少,则输入大页的应用状况以及应用了大页的过程信息。

命令 :oc-ops mem checkcost [-n topn] [-d] [-h]

参数阐明

-n, top n 示意前 top n 的内存耗用项,默认显示 top 3 的内存耗用项;

-d, 先清空缓存(echo 3 > /proc/sys/vm/drop_caches),再进行内存耗费检测;

-h, 显示 oc-ops mem checkcost 的用法,并退出。

3、oc-ops io latency

性能 :监控某个或某些存储设备 IO 超过指定阈值,便于定位 IO 慢的问题。

命令 :oc-ops io latency -d device [-s size] [-l logdir] [-a average] [-m max] [-p period] [-Q threshold] [-D threshold] [-r] [-k] [-h]

参数阐明

-d, 指定监控的设施,例如:sda;多个设施之间用逗号相连,例如:sda,sdb。

-s, 指定日志存储空间(针对 -d 参数中的每个设施)的大小,超过大小后,日志将主动回滚(超过阈值的日志仍会保留),默认 1048576KB。

-l, 指定日志存储目录,必须按绝对路径传递存储目录;默认是 /data/oc-ops/io/latency。为防止进入其余目录创立和删除文件,-l 指定的门路中必须蕴含 ”io/latency” 字符串。

-a, io average latency 的阈值,反对浮点示意,单位为秒,默认 0.2s。

-m,io max latency 的阈值,反对浮点示意,单位为秒,默认 5s。

-p, 每个监控周期的工夫,单位为秒,默认 60s。一个监控周期完结后,会主动开始下一个周期的监控。

-Q, IO Q2C(示意 io Queued To Complete)耗时的阈值,反对浮点示意,单位为秒,默认与 -m 的数值雷同。

-D, IO D2C(示意 io Dispatched/Issued To Complete)耗时的阈值,反对浮点示意,单位为秒,默认与 -m 的数值雷同。

-r, 保留两头过程的日志,应用此参数可不便调试或基于保留的日志更深刻地剖析 IO 时延问题。如果 oc-ops io latency 命令没有带 -r 参数,则此次采样过程中的所有 blktrace 数据都不会保留。

-k,kill 所有 oc-ops io latency 监控 IO 的过程,完结监控。应用 -k 时,如果想要保留 blktrace 数据进行更深刻的剖析,也须要加上 -r 参数;否则将清空历次采纳的所有 blktrace 数据。

-h,显示 oc-ops io latency 的用法。

应用注意事项

-l 指定的日志存储目录,应防止在 -d 指定的监控设施上(因为日志存储会产生 IO,减少被监控设施的 IO 压力)。

-l 指定的日志存储目录,应防止指定内存文件系统(例如 tmpfs)所在的目录(因为在内存文件系统上存储日志会耗费内存,对业务产生烦扰)。

-d 反对监控多个 device,如果监控过多设施(特地是疾速设施,例如 NVMe),会对 CPU 占用率产生烦扰。

4、oc-ops cpu irq latency

性能 :监控中断响应超时。

命令 :oc-ops cpu irq latency [-e val] [-f freq_ms] [-t threshold_ms] [-c] [-k] [-h]

参数阐明

-e,使能 / 去使能 IRQ latency 的检测。-e 参数前面只能传两种值之一:1 或 0。1 示意开启监控,0 示意敞开监控。

-f,设置监控时采样的频率所对应的工夫,单位为 ms,取值范畴为 4ms, 1000ms。

-t,设置 latency 的阈值,单位为 ms,取值范畴为 freq_ms, 30000ms;中断响应 latency 超过阈值时相干的栈信息将打印进去。下限设置的起因:如果关中断的时延超过 30000ms,soft lockup 个性能够检测进去。

-c,革除已积攒的栈信息。

-k,为防止遗记敞开检测而对系统造成净化,oc-ops cpu irq latency 将默认在 3600s 后敞开检测。-k 示意 keep IRQ latency 的检测,永远不会主动敞开。

-h,显示 oc-ops cpu irq latency 的用法。

其余信息

使能后,每 60s 主动打印检测后果。如想被动查看检测后果,可执行以下两条命令获取:

cat /proc/irq_latency/trace_dist    

cat /proc/irq_latency/trace_stack

示例 1:使能 IRQ latency,并设置阈值为 50ms。

执行 oc-ops cpu irq latency -e 1 -t 50

示例 2:去使能 IRQ latency。

执行 oc-ops cpu irq latency -e 0

四、小结

在 OpenCloudOS 平台上,oc-ops 能够不便地帮忙用户剖析内存耗用、IO 时延、中断时延等问题,晋升相干问题的定位效率。此外,oc-ops 还在一直成长、欠缺中,并且将来会逐渐减少 healthy-check(检测零碎衰弱状态、主动修复局部问题)、网络丢包、时延抖动、误删文件复原、信号跟踪等维测性能。

如果您想深刻理解这些性能,咱们建议您拜访 OpenCloudOS 社区的官方网站,并参加到 oc-ops 的开发中来。同时,咱们也欢迎您下载和应用 OpenCloudOS,以体验平台的高效、智能运维体验。下载地址:

https://www.opencloudos.org/iso

如果您有任何意见、倡议或问题,请扫描下方二维码,退出社区交换群,咱们会全力支持您,以确保您在 OpenCloudOS 平台上获得最佳的运维体验。

退出移动版