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
아니면 커널의 RAM 사용량, 즉 MQ, FIFO, SHM, 도메인 소켓 또는 기타 IPC 수단에서 사용되는 RAM 사용량을 표시할 top
수 없습니까 ?pa aux
답변1
IPC 리소스는 특정 프로세스에 바인딩되어 있지 않으므로 표시된 데이터에 표시되지 않습니다 top
. ps
인용한 예에서 이를 볼 수 있습니다. 메시지 큐는 작성자에 의해 생성되지만 리더는 작성자에 의해 삭제됩니다.
IPC 리소스를 모니터링하려면 다음을 사용할 수 있습니다 lsipc
.
lsipc
개요가 제공되며,
lsipc -q
메시지 대기열 세부 정보가 표시됩니다.