Futó folyamatok kiíratása processzor terhelésének függvényében
Sziasztok!
Azt szeretném, hogy ha egy linux szerver load-ja elér egy bizonyos szintet, akkor az éppen aktuálisan futó, legjobban a processzort gyötrő folyamatokat egy fájlba írja bele.
A gondom a következővel akadt.
Ezt a parancsot használom, ez kiírja a 20 leginkább terhelő folyamatot csökkenő sorrendben elvileg jól gyakorlatilag azonban mégsem jól.
ps -eo pcpu,pid,user,args | sort -r -k1 | head -20
A gond azzal van, hogy a "pcpu" oszlop tartalmaz tizedes vesszőt is, de a sorba rendezés ezt figyelmen kívül hagyja.
Egy látványos eredménye ennek:
----------------------------------------------------------------------------------------------------------------------
%CPU PID USER COMMAND
2.0 29941 root /usr/local/ispmgr/sbin/eximquota
15.0 5261 1392 /usr/bin/php5-cgi php
1.4 4484 www-data /usr/sbin/apache2 -k start
1.4 3991 www-data /usr/sbin/apache2 -k start
110 2264 mysql /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
1.0 5258 1258 pop3
0.8 3928 dovecot imap-login
0.8 17636 www-data nginx: worker process
0.6 2734 www-data /usr/sbin/apache2 -k start
0.5 32130 www-data /usr/sbin/apache2 -k start
0.5 32127 www-data /usr/sbin/apache2 -k start
0.5 17638 www-data nginx: worker process
0.4 3914 root /usr/local/ispmgr/bin/ispmgr
0.4 28651 root /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock
0.4 17639 www-data nginx: worker process
0.4 1568 www-data /usr/sbin/apache2 -k start
0.3 29872 www-data /usr/sbin/apache2 -k start
0.3 24499 www-data /usr/sbin/apache2 -k start
0.3 1565 www-data /usr/sbin/apache2 -k start
----------------------------------------------------------------------------------------------------------------------
Látszólag jó minden, de a legfelső sor 2%, az alatta levő 15%, a mysql 110%-a az 1.4% alá kerül.
Hogyan tudnám azt megoldani, hogy a sorba rendezés tényleg csökkenő sorban legyen, korrektül lekezelve ezt a tizedesvessző problémát?
Életképes megoldás lehetne a csonkolás is, a tizedesvessző utáni érték annyira nem érdekelne.
Van valami ötletetek?
Természetesen érdekel a lista más módszerrel történő előállítása is, nem ragaszkodom ehhez. A lényeg, hogy lássam, mely folyamatok terhelik leginkább a gépet, ezen folyamatokat pedig terhelés függvényében csökkenve, egymás alatt jelenítse meg.
- Tovább (Futó folyamatok kiíratása processzor terhelésének függvényében)
- 5646 megtekintés