Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法检查我是否达到了 Linux 中任何类型缓冲区的限制/内核限制?
就像一个命令告诉你:
openfile limit reached max net connection reached net buffer full inodes full memory buffer full
就像 FreeBSD 中的 vmstat -z 一样,所有其他奇怪的缓冲区都可能在服务器中被填满。
PS:我知道我可以查看日志,但是如果我有很多行,这是一个缓慢的过程。
细节取决于具体限制。通常,当系统调用尝试超过限制时,您会收到错误消息。例如,如果由于 openfile 限制而无法打开文件,open()将返回-1并设置errno为when。EMFILE
open()
-1
errno
EMFILE
如果堆内存用完了,malloc()将返回NULL表明它不能再分配更多内存。
malloc()
NULL
由于这是一个编程站点,我假设您想知道如何在应用程序中执行此操作。我有一种感觉,您实际上是在问如何为此监视系统,这对于 SO 来说是题外话—— sysadmin.com 会是一个更好的地方。