我制作了一个Bash提示符,当工作目录是Git存储库时,显示当前系统信息库的名称。此外,它包含了当前正在进行的任务以及花在做它的时间(从自制计时工具)。这当然意味着只显示提示意味着运行两个进程。检测系统负载,重点是Linux中的“交换抖动”
这样做的缺点是,如果系统由于某种原因发生颠簸,则需要一个提示来做必要的事情来保存系统,因为只需加载git
二进制文件就不会问系统了这样的状态。
所以,现在,默认情况下提示是禁用的,并且只在需求时启用,但这并不舒服。在.bashrc
中检测负载会更好,并且只有在系统运行正常(即具有可接受的磁盘延迟)时才启用提示。
在这种情况下,CPU相当便宜,只有磁盘价格昂贵。所以我需要一种能够在不依赖外部工具的情况下检测抖动的方法。
提示:/proc
可能有用。例如。 /proc/loadavg
会解决我的问题,如果它是导致瓶颈的CPU,而不是磁盘。
我会说你的提示可能有点太聪明了。试图在系统处于交换过程中尝试运行的程序,即使只是为了检查它是否应该运行,也会阻止等待核心(模优先级队列和随机机会)。我在此将其配置为Catch-22提示符:必须运行的程序以确定它是否有能力运行;) – msw 2010-07-19 06:21:09
如果可以在bash中完全解决它,那么没有问题? – mvds 2010-07-19 06:40:55
@mvds:那甚至会是首选! – AttishOculus 2010-07-19 07:41:15