我正在学习如何在 Linux 中使用消息队列,我找到了一个简单的例子:https://www.geeksforgeeks.org/ipc-using-message-queues/。
通过此链接中的读取器和写入器,我可以通过 Ubuntu 上的消息队列读取和写入消息。一切安好。
好吧,如果我是对的,当我们将一些消息写入消息队列时,这些消息将存储到内核中,这意味着内核将分配一些 RAM 来存储它们。
假设我不断地将许多消息写入消息队列,但从不使用它们。据我了解,将会使用越来越多的内存。在这种情况下,我可以使用命令top
或ps aux
监控 RAM 使用量的增加吗?
命令的VIRT
和行与 RAM 使用情况有关,命令的和行也与 RAM 使用情况有关。RES
top
VSZ
RSS
ps aux
在上面的例子中,我可以看到四个数字(VIRT
、RES
和)中的一些数字正在增加吗VSZ
?RSS
或者top
无法pa aux
向我们显示内核的 RAM 使用情况,即 MQ、FIFO、SHM、域套接字或其他 IPC 方式使用的 RAM 使用情况?
答案1
IPC 资源不与给定进程绑定,因此它们不会显示在 等显示的数据中top
。ps
您可以在您引用的示例中看到这一点:消息队列由编写者创建,但由编写者删除读者。
要监控IPC资源,您可以使用lsipc
:
lsipc
将提供概述,并且
lsipc -q
将显示消息队列的详细信息。