프로세스의 메모리 소비를 추적하기 위해 쉘 스크립트에서 top을 사용하는 방법은 무엇입니까?

프로세스의 메모리 소비를 추적하기 위해 쉘 스크립트에서 top을 사용하는 방법은 무엇입니까?

실행할 스크립트의 메모리 소비를 추적하기 위해 top 또는 다른 프로그램을 사용할 수 있는 방법이 있는지 궁금합니다. 나는 사용하고있다

   runtime.totalMemory - runtime.freeMemory

그러나 추적하려는 프로세스뿐만 아니라 전체 시스템을 고려하기 때문에 이는 중요하지 않습니다.

저는 scala 프로그램을 실행하기 위해 쉘 스크립트를 사용하고 있으며 해당 프로그램의 메모리 사용량을 추적하고 싶습니다.

답변1

SCALAPID=$!백그라운드에서 scala 프로세스를 시작한 후 추적하려는 scala 프로세스의 PID를 가져온 다음 ps -o size= -q $SCALAPID반환 값을 사용하여 해당 프로세스의 메모리 사용량을 킬로바이트 단위로 찾습니다.

답변2

이미 실행 중인 프로세스의 메모리를 확인하려면 다음을 시도하십시오.이것:

# ./ps_mem.py
 Private  +   Shared  =  RAM used       Program

188.0 KiB +  52.0 KiB = 240.0 KiB       atd
.....
 25.9 MiB +  66.0 KiB =  26.0 MiB       memcached
 53.1 MiB + 106.5 KiB =  53.2 MiB       named
453.2 MiB + 107.0 KiB = 453.3 MiB       mysqld
---------------------------------
                          1.2 GiB
=================================

실행할 스크립트에 대해 묻는 경우 스크립트가 무엇이든 호출할 수 있고 차례대로 많은 것을 호출할 수 있으므로 확인할 방법이 없다고 생각합니다.

관련 정보