|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 12 Nov 2002 22:51:28 To : Andrey Sapozhnikov Subject : Re: Вопрос к специали стам по mod_perl -------------------------------------------------------------------------------- Andrey Sapozhnikov wrote: > Исключительно телепатически полагаю, что это > делается либо средствами bash (командой ulimit -v) и порождением > всех процессов данного пользователя от данного шелла, либо подобным > ему. Еще один вариант. Hечто периодически сканирует файлы /proc/*/status читая строчки Uid: и VmSize: (это к примеру. А возможно оно умнее и смотрит еще /proc/*/maps выкидывая из общей Vm readonly сегменты общеупотребительных библиотек типа libc ибо приписывать их использование только отдельному индивидууму нечестно). В таком случае можно посканировать точно так же (простейший пример суммирующий VM всех процессов со "своим" uid): my $total = 0; opendir(PROC, '/proc') or die "$!"; foreach (readdir(PROC)) { /^\d+$/ or next; open(STATUS, "< /proc/$_/status") or next; while (<STATUS>) { last if /^Uid:\s+(\d+)/ && $1 != $<; $total += $1, last if /^VmSize:\s+(\d+)/; } close(STATUS); } closedir(PROC); print "$total kB"; но этот вариант, разумеется, будет безбожно завышать оценку суммируя сегменты разделяемые не только с другими пользователями, но и между процессами одного и того же пользователя... Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/6577b7664c0d.html, оценка из 5, голосов 10
|