【发布时间】:2015-05-02 04:56:49
【问题描述】:
我正在编写一个在 Linux shell 后台运行的 C 程序,如果总内存消耗超过总内存的 85%,那么它将打印出警告。检查是否创建了新进程的最佳方法是什么(我想在每次创建进程时检查内存的值)?
【问题讨论】:
-
根据您的需要,什么是最好的?即您介意不注意一些流程创建吗?
-
我的意思是,我只需要 C 程序识别新进程何时创建并采取相应措施。
我正在编写一个在 Linux shell 后台运行的 C 程序,如果总内存消耗超过总内存的 85%,那么它将打印出警告。检查是否创建了新进程的最佳方法是什么(我想在每次创建进程时检查内存的值)?
【问题讨论】:
确定何时创建(和退出)进程的最有效方法是发送至use the proc connector。使用起来有些复杂,但会在事件发生时立即通知您的进程。
但是,请记住,进程的内存使用量在它们运行时可能会发生巨大变化。监控正在创建的流程几乎肯定不足以满足您的需求;您将需要定期轮询内存使用情况。 (没有通用的方法来获取系统内存使用情况的通知,除了在具有内存控制器的 cgroup 中运行您的进程并注册 OOM 处理程序。您不想这样做。)
【讨论】: