하위 프로세스의 최대 메모리 사용량을 모니터링하려고했습니다. time -v는 옵션이지만 solaris에서는 작동하지 않습니다. 쉘 스크립트에서 rusage 구조의 세부 정보를 가져 오는 방법이 있습니까?쉘 스크립팅에서 rusage 구조를 얻으려면 wait3을 대체 할 수 있습니까?
사용할 수답변
/usr/bin/timex
the /usr/bin/timex
man page에서 :
주어진 명령이 실행됩니다; 경과 시간, 사용자 시간 및 시스템 실행에 소요 된 시간이 초 단위로보고됩니다. 선택적으로 명령 에 대한 계정 데이터 및 해당 하위의 모든 데이터를 나열하거나 을 요약 할 수 있으며 실행 간격 동안의 전체 시스템 활동을보고 할 수 있습니다.
...
-p 명령 및 모든 하위에 대한 프로세스 계정 기록을 나열합니다. 이 옵션은 프로세스 사용 통계 소프트웨어가 설치된 경우에만 작동합니다. 서브 옵션 f, h, k, m, r 및 t는보고 된 데이터 항목 을 수정합니다. 프로세스 계정이 활성화하려면
acctadm
에 대한 man 페이지와...
시작 : 옵션은 다음과 같습니다.
Solaris의 경우 getrusage()
및 wait3()
은 메모리 사용 통계를 반환하지 않습니다. 소스 코드가 http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/syscall/rusagesys.c 인 getrusage()
과 wait3()
소스 코드를 http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/sys/common/wait.c#158 (실제로 Oracle의 지원을 중단 한 OpenSolaris 소스이며 현재 Solaris 구현을 나타내지는 않습니다. Solaris 11.2의 몇 가지 테스트에서 RSS 데이터는 실제로 여전히 제로이다) 또한
상기 Solaris getrusage()
man page에서 :.
가
ru_maxrss
상기rusage
구조ru_ixrss
,ru_idrss
및ru_isrss
부재가이 구현에서 0으로 설정된다.
dtrace
과 같이 데이터를 가져 오는 방법은 거의 확실합니다.
편집 :
dtrace
dtrace -s memuse.d -c bash
#!/usr/sbin/dtrace -s
#pragma D option quiet
profile:::profile-1001hz
/pid == $target/
{
@pct[ pid ] = max(curpsinfo->pr_pctmem);
}
dtrace:::END
{
printa("pct: %@u %a\n", @pct);
}
으로이 dtrace
스크립트를 실행하려고 : Solaris에서
dtrace: failed to compile script memuse.d: line 8: translator does not define conversion for member: pr_pctmem
dtrace
것은 메모리 사용량을 처리하기 위해 액세스를 제공하기 위해 표시되지 않습니다. 사실 솔라리스 11.,
/*
* Translate from the kernel's proc_t structure to a proc(4) psinfo_t struct.
* We do not provide support for pr_size, pr_rssize, pr_pctcpu, and pr_pctmem.
* We also do not fill in pr_lwp (the lwpsinfo_t for the representative LWP)
* because we do not have the ability to select and stop any representative.
* Also, for the moment, pr_wstat, pr_time, and pr_ctime are not supported,
* but these could be supported by DTrace in the future using subroutines.
* Note that any member added to this translator should also be added to the
* kthread_t-to-psinfo_t translator, below.
*/
이 ps_rssize
검색의 Illumos.org 소스 코드를 브라우징 procfs
데이터가 필요한 경우에만 계산, 프로세스 실행으로 지속적으로 업데이트되지 않았 음을 나타냅니다 : procfs
데이터에 대한 2 /usr/lib/dtrace/procfs.d
번역기는이 의견을 가지고 . (http://src.illumos.org/source/search?q=pr_rssize&defs=&refs=&path=&hist=&project=illumos-gate 참조)