Linuxでメッセージキューを使用する方法を学んでいますが、次の簡単な例を見つけました。https://www.geeksforgeeks.org/ipc-using-message-queues/。
このリンクの読者と作成者を使用すると、Ubuntuのメッセージキューを介してメッセージを読み書きできます。すべてが大丈夫です。
さて、私が正しい場合、メッセージキューにいくつかのメッセージを書き込むと、このメッセージはカーネルに保存されます。これは、カーネルがメッセージを格納するためにいくつかのRAMを割り当てるという意味です。
メッセージキューに常に多くのメッセージを記録しますが、決して使用しないとしましょう。私が理解したように、ますます多くのメモリが使用されています。この場合、コマンドを使用するtop
かps aux
、RAM使用量の増加を監視できますか?
コマンドVIRT
の合計と行はRAM使用量に関連し、コマンドの合計と行もRAM使用量に関連しています。RES
top
VSZ
RSS
ps aux
上記の例では、4つの数字(VIRT
、および)RES
のうちのいくつかが増加しているのがわかりますかVSZ
?RSS
または、カーネルのRAM使用量、つまりMQ、FIFO、SHM、ドメインソケット、またはその他のIPC手段で使用されているRAM使用量を表示top
できませんか?pa aux
答え1
IPCリソースは特定のプロセスにバインドされていないため、表示されたデータには表示されませんtop
。ps
引用した例ではこれを見ることができます。メッセージキューは作成者によって生成されますが、リーダーは作成者によって削除されます。
IPCリソースを監視するには、次のものを使用できますlsipc
。
lsipc
概要が提供され、
lsipc -q
メッセージキューの詳細が表示されます。