有没有办法检查我是否达到了Linux中任何缓冲区的限制/内核限制?
就像一个告诉你的命令:
openfile limit reached
max net connection reached
net buffer full
inodes full
memory buffer full
所有其他奇怪的缓冲区可能在服务器中充满,就像FreeBSD中的vmstat -z一样。
P.S。:我知道我可以查看日志,但如果我有很多行,那么这是一个缓慢的过程。
答案 0 :(得分:2)
详细信息取决于具体限制。通常,当尝试超出限制时,您将从系统调用中收到错误。例如,如果由于openfile限制而无法打开文件,open()
将返回-1
并将errno
设置为EMFILE
。
如果堆内存不足,malloc()
将返回NULL
,表示它无法分配更多内存。
由于这是一个编程站点,我假设您想知道如何在应用程序中执行此操作。我有一种感觉,你实际上是在询问如何监控系统,这对于SO来说是偏离主题的 - sysadmin.com将是一个更好的地方。