ionice 手册指出:
请注意,在内核 2.6.26 之前,未要求 io 优先级的进程正式使用“none”作为调度类,但 io 调度程序会将此类进程视为最佳努力类。尽力而为类别中的优先级将从进程的 cpu nice 级别动态派生:io_priority = (cpu_nice + 20) / 5。
对于带有 CFQ io 调度程序的 2.6.26 之后的内核,未要求 io 优先级的进程继承 CPU 调度类。io 优先级源自进程的 cpu nice 级别(与内核 2.6.26 之前相同)。
我发布了 2.6.26,但这仍然留下了一些悬而未决的问题(我假设是 CFQ):
调度类的继承映射是什么?TS SCHED_OTHER = Best Effort (io class 2) 吗?
使用 ionice -p 命令获取值时,返回none: prio 0
. 但是,ionice man 中提到的公式表明,best-effort: prio 4
由于 (0 + 20) / 5 = 4 ,相同的过程(cpu nice 为零)。
所以我此时的假设是none: prio 0
= best-effort: prio 4
,但我希望有人可以引用一些内核源代码来证明这是权威性的。
在 DMESG 我看到:
[sdb] Attached SCSI removable disk
我想知道是否可以使用/sys/module
lsmod的目录列表来获取当前加载的模块列表。
那只是加载模块的列表吗?或者也许与/sys/module/*/initstate
?
我希望能够监控Linux中打开文件的数量。/proc/<pid>/fd
目前我正在计算和中的文件数量fdinfo
。
我的负载均衡器有大约一百万个 FD。所以这最终需要大约 20 秒来执行。
然而,这会导致 CPU 使用率高:47.18% [kernel] [k] __d_lookup
有没有更有效的方法来获取这个数字?
我想将 CPU 总利用率作为计数器进行监控。我希望它作为计数器的原因是样本之间的数据不会丢失(并且我可以让绘图端计算速率)。
我最初的方法是使用/proc/uptime
公式(uptime-(idle_time/num_core))*100
。这通常在大量服务器上似乎是准确的(大约 98% 的时间),但有时我似乎得到了错误的结果。例如,以下内容似乎表明存在负 CPU 使用率,这实际上没有意义:
[root@ny-lb05 ~]# echo -e "scale=10\n ($(cut -f1 -d' ' /proc/uptime)-($(cut -f2 -d' ' /proc/uptime)/16))*100" | bc
5646895.3750000000
[root@ny-lb05 ~]# echo -e "scale=10\n ($(cut -f1 -d' ' /proc/uptime)-($(cut -f2 -d' ' /proc/uptime)/16))*100" | bc
5646891.5625000000
Run Code Online (Sandbox Code Playgroud)
在此服务器上我正在运行:
Linux ny-lb05.ds.stackexchange.com 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 19:59:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
有人发现这种计算方法有错误吗?有没有更好的方法来获取 CPU 利用率作为计数器?
更新:
所以我追求的是作为单调递增计数器的总使用时间。我预计总利用率永远不会减少。但以下情况似乎就是这种情况:
[root@ny-lb05 ~]# read uptime idle </proc/uptime; echo -e "scale=1000\n ($uptime*16-($idle))" | …
我想监控登录的会话,包括他们如何登录(物理控制台或 SSH),以及该会话存在多长时间。
似乎utmpdump /var/log/utmp
有这些信息,但我找不到解释所有字段的文档。有人可以启发我吗?
free
我有一台主机,在比较命令的输出和 .txt 文件的内容时,我不确定内存利用率/proc/meminfo
。缓冲区+缓存似乎在两个源之间不匹配。
[kbrandt@ny-chsearch01]~% free -k
total used free shared buff/cache available
Mem: 24506972 18074768 572836 124 5859368 5996392
Swap: 4194300 130044 4064256
[kbrandt@ny-chsearch01]~% cat /proc/meminfo
MemTotal: 24506972 kB
MemFree: 575808 kB
MemAvailable: 5996136 kB
Buffers: 3140 kB
Cached: 380032 kB
SwapCached: 61344 kB
Active: 16305144 kB
Inactive: 1860568 kB
Active(anon): 15990712 kB
Inactive(anon): 1791952 kB
Active(file): 314432 kB
Inactive(file): 68616 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194300 kB
SwapFree: 4064256 kB
Dirty: 24 kB …
Run Code Online (Sandbox Code Playgroud) linux ×6
proc ×2
block-device ×1
cpu ×1
ionice ×1
memory ×1
monitoring ×1
scsi ×1
sysfs ×1
tty ×1