Jak ziskavat informace o procesech

Radim Kolar hsn at filez.com
Fri Apr 6 01:54:46 CEST 2012


portebuju preportovat 
org.apache.hadoop.yarn.util.LinuxResourceCalculator je to Java, takze 
nemuze volat funkce z C knihoven

jedna se o tridu ktera ziskava informace o systemu, procesech a pameti. 
Zajimalo by mne jak tyto informace z kernelu vyndat, neco pujde asi pres 
/proc ale jedinej zajimavej soubor v /proc/X/ je asi jen ten status kde 
je CPU time procesu.

Ty informace o pameti asi ziskam z vmstat, pocet procesoru ze sysctl

potrebuju naimplementovat:

getPhysicalMemorySize() - asi z vmstat avm. ale tohle cislo mam vetsi 
nez phys memory, ale zase mensi nez virtualni pamet
getVirtualMemorySize() - ze swapinfo
getAvailablePhysicalMemorySize() - vmstat
getAvailableVirtualMemorySize() - swapinfo
getNumProcessors() - sysctl
getCpuFrequency() - sysctl
getCumulativeCpuTime() - /proc/x/status
getCpuUsage() - tohle vypisuje top v %WCPU
getProcResourceValues() - cputime, phys mem, v mem - asi to brat z ps

hadoop to chce monitorovat 1x do sekundy. Neni lepsi reseni si napsat 
program kterej tohleto vsechno vypisuje do pipe a v jave si to z ni 
cist? nebo je spusteni tak 10ti programu za sekundu tak mala zatez ze na 
soucasnych CPU to nestoji za rec?


More information about the Users-l mailing list