IPC의 RAM 사용량이 프로그램의 RAM 사용량에 포함됩니까?

IPC의 RAM 사용량이 프로그램의 RAM 사용량에 포함됩니까?

Linux에서 메시지 대기열을 사용하는 방법을 배우고 있는데 다음과 같은 간단한 예를 찾았습니다.https://www.geeksforgeeks.org/ipc-using-message-queues/.

이 링크의 독자와 작성자를 사용하면 Ubuntu의 메시지 대기열을 통해 메시지를 읽고 쓸 수 있습니다. 모든 것이 괜찮습니다.

글쎄요, 제가 옳다면 메시지 대기열에 일부 메시지를 쓸 때 이 메시지는 커널에 저장됩니다. 이는 커널이 메시지를 저장하기 위해 일부 RAM을 할당한다는 의미입니다.

메시지 대기열에 지속적으로 많은 메시지를 기록하지만 결코 사용하지 않는다고 가정해 보겠습니다. 내가 이해한 바에 따르면 점점 더 많은 메모리가 사용됩니다. 이 경우 명령을 사용 top하거나 ps auxRAM 사용량 증가를 모니터링할 수 있나요?

명령의 합계와 줄은 VIRTRAM 사용량과 관련이 있으며 명령의 합계와 줄도 RAM 사용량과 관련이 있습니다.REStopVSZRSSps aux

위의 예에서 네 개의 숫자( VIRT, 및 ) RES중 일부가 증가하는 것을 볼 수 있습니까 VSZ? RSS아니면 커널의 RAM 사용량, 즉 MQ, FIFO, SHM, 도메인 소켓 또는 기타 IPC 수단에서 사용되는 RAM 사용량을 표시할 top수 없습니까 ?pa aux

답변1

IPC 리소스는 특정 프로세스에 바인딩되어 있지 않으므로 표시된 데이터에 표시되지 않습니다 top. ps인용한 예에서 이를 볼 수 있습니다. 메시지 큐는 작성자에 의해 생성되지만 리더는 작성자에 의해 삭제됩니다.

IPC 리소스를 모니터링하려면 다음을 사용할 수 있습니다 lsipc.

lsipc

개요가 제공되며,

lsipc -q

메시지 대기열 세부 정보가 표시됩니다.

관련 정보