2016-08-03 22 views

Antwort

0

Sie können /usr/bin/timex

Von the /usr/bin/timex man page:

Der gegebene Befehl wird ausgeführt; Die verstrichene Zeit, die Benutzerzeit und das System Zeit in Ausführung ausgeführt werden in Sekunden berichtet. Optional können Buchhaltungsdaten für den Befehl und alle seine untergeordneten Elemente aufgelistet oder zusammengefasst werden, und die gesamte Systemaktivität während des Ausführungsintervalls kann gemeldet werden.

...

-p Liste Prozess Buchführung für Befehl und alle seine Kinder. Diese Option funktioniert nur, wenn die Prozessabrechnungssoftware installiert ist. Die Unteroptionen f, h, k, m, r und t modifizieren die Daten gemeldet. Die Optionen sind wie folgt:

...

Beginnen Sie mit der Manpage acctadm Prozess-Accounting aktiviert werden.

Beachten Sie, dass unter Solaris getrusage() und wait3() Speicherverbrauchsstatistiken nicht zurückgegeben werden. Siehe den (etwas veralteten) getrusage() Quellcode unter http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/syscall/rusagesys.c und den wait3() Quellcode unter http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/sys/common/wait.c#158 (Das ist eigentlich OpenSolaris Quelle, die von Oracle unterstützt wurde und möglicherweise nicht die aktuelle Solaris Implementierung darstellt, obwohl einige Tests unter Solaris 11.2 zeigen, dass der RSS-Daten sind in der Tat immer noch null)

auch aus den Solaris getrusage() man page.

die ru_maxrss, ru_ixrss, ru_idrss und ru_isrss Mitgliedern der rusage Struktur auf 0 in dieser Implementierung festgelegt werden.

Es gibt fast sicher andere Möglichkeiten, um die Daten zu erhalten, wie dtrace.

Edit:

dtrace sieht nicht viel Hilfe sein, leider. Diesen dtrace Skript mit 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); 
} 

in der folgenden Fehlermeldung führte zu laufen Den Versuch:

dtrace: failed to compile script memuse.d: line 8: translator does not define conversion for member: pr_pctmem 

dtrace auf Solaris erscheint keinen Zugriff bereitzustellen Speichernutzung zu verarbeiten. In der Tat, die Solaris 11.2 /usr/lib/dtrace/procfs.d Übersetzer für procfs Daten hat diesen Kommentar drin:

/* 
* 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. 
*/ 

die Illumos.org Quellcode surfen, für ps_rssize suchen, zeigt an, dass die procfs Daten nur berechnet wird, wenn nötig, und nicht kontinuierlich, da der Prozess läuft aktualisiert . (Siehe http://src.illumos.org/source/search?q=pr_rssize&defs=&refs=&path=&hist=&project=illumos-gate)