From 4a102ce237658c9ed64160dc67c1dafa649a0973 Mon Sep 17 00:00:00 2001 From: sitaramshelke Date: Wed, 6 Jul 2016 07:57:01 +0530 Subject: [PATCH] pcp-pidstat: initial commit of PCP implementation of pidstat --- GNUmakefile | 6 + build/rpm/fedora.spec | 4 +- build/rpm/pcp.spec.in | 2 +- qa/1078 | 45 + qa/1078.out | 2769 ++++++++++++++++++++ qa/archives/pcp-pidstat.0 | Bin 0 -> 228608 bytes qa/archives/pcp-pidstat.index | Bin 0 -> 212 bytes qa/archives/pcp-pidstat.meta | Bin 0 -> 12400 bytes qa/group | 1 + src/GNUmakefile | 5 + src/pcp/GNUmakefile | 5 + src/pcp/pidstat/.gitignore | 1 + src/pcp/pidstat/GNUmakefile | 40 + src/pcp/pidstat/pcp-pidstat.1 | 148 ++ src/pcp/pidstat/pcp-pidstat.py | 574 ++++ .../pidstat/test/cpu_process_memory_util_test.py | 38 + .../pidstat/test/cpu_process_priorities_test.py | 38 + .../pidstat/test/cpu_process_stack_util_test.py | 38 + src/pcp/pidstat/test/cpu_usage_reporter_test.py | 122 + src/pcp/pidstat/test/cpu_usage_test.py | 38 + src/pcp/pidstat/test/metric_repository_test.py | 151 ++ .../test/none_handler_printer_decorator_test.py | 40 + .../pidstat/test/pcp-pidstat-pmlogger-config.txt | 43 + src/pcp/pidstat/test/pcp_pidstat.py | 1 + src/pcp/pidstat/test/process_cpu_usage_test.py | 217 ++ src/pcp/pidstat/test/process_filter_test.py | 109 + .../test/process_memory_util_reporter_test.py | 85 + src/pcp/pidstat/test/process_memoryutil_test.py | 162 ++ .../pidstat/test/process_priority_reporter_test.py | 58 + src/pcp/pidstat/test/process_priority_test.py | 73 + .../test/process_stack_util_reporter_test.py | 57 + src/pcp/pidstat/test/process_stackutil_test.py | 69 + 32 files changed, 4936 insertions(+), 3 deletions(-) create mode 100755 qa/1078 create mode 100644 qa/1078.out create mode 100644 qa/archives/pcp-pidstat.0 create mode 100644 qa/archives/pcp-pidstat.index create mode 100644 qa/archives/pcp-pidstat.meta create mode 100644 src/pcp/pidstat/.gitignore create mode 100644 src/pcp/pidstat/GNUmakefile create mode 100644 src/pcp/pidstat/pcp-pidstat.1 create mode 100644 src/pcp/pidstat/pcp-pidstat.py create mode 100644 src/pcp/pidstat/test/cpu_process_memory_util_test.py create mode 100644 src/pcp/pidstat/test/cpu_process_priorities_test.py create mode 100644 src/pcp/pidstat/test/cpu_process_stack_util_test.py create mode 100644 src/pcp/pidstat/test/cpu_usage_reporter_test.py create mode 100644 src/pcp/pidstat/test/cpu_usage_test.py create mode 100644 src/pcp/pidstat/test/metric_repository_test.py create mode 100644 src/pcp/pidstat/test/none_handler_printer_decorator_test.py create mode 100644 src/pcp/pidstat/test/pcp-pidstat-pmlogger-config.txt create mode 120000 src/pcp/pidstat/test/pcp_pidstat.py create mode 100644 src/pcp/pidstat/test/process_cpu_usage_test.py create mode 100644 src/pcp/pidstat/test/process_filter_test.py create mode 100644 src/pcp/pidstat/test/process_memory_util_reporter_test.py create mode 100644 src/pcp/pidstat/test/process_memoryutil_test.py create mode 100644 src/pcp/pidstat/test/process_priority_reporter_test.py create mode 100644 src/pcp/pidstat/test/process_priority_test.py create mode 100644 src/pcp/pidstat/test/process_stack_util_reporter_test.py create mode 100644 src/pcp/pidstat/test/process_stackutil_test.py diff --git a/GNUmakefile b/GNUmakefile index 44b212fa1..df1f94a2d 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -120,6 +120,12 @@ realclean distclean clean clobber: @true endif +check :: check_pcp + +check_pcp : src + $(SUBDIRS_MAKERULE) + + aclocal.m4: # older aclocal(1) versions use --acdir but not the current versions aclocal --system-acdir=`pwd`/m4 --output=$@ diff --git a/build/rpm/fedora.spec b/build/rpm/fedora.spec index 7082cc411..9e7363f53 100644 --- a/build/rpm/fedora.spec +++ b/build/rpm/fedora.spec @@ -1782,13 +1782,13 @@ ls -1 $RPM_BUILD_ROOT/%{_bindir} |\ grep -E 'pmiostat|pmcollectl|pmatop|pmrep' |\ sed -e 's#^#'%{_bindir}'\/#' >pcp_system_tools.list ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\ - grep -E 'atop|collectl|dmcache|free|iostat|numastat|verify|uptime|shping' |\ + grep -E 'atop|collectl|dmcache|free|iostat|numastat|pidstat|verify|uptime|shping' |\ sed -e 's#^#'%{_libexecdir}/pcp/bin'\/#' >>pcp_system_tools.list %endif ls -1 $RPM_BUILD_ROOT/%{_libexecdir}/pcp/bin |\ %if !%{disable_python2} || !%{disable_python3} - grep -E -v 'atop|collectl|dmcache|free|iostat|numastat|verify|uptime|shping' |\ + grep -E -v 'atop|collectl|dmcache|free|iostat|numastat|pidstat|verify|uptime|shping' |\ %endif sed -e 's#^#'%{_libexecdir}/pcp/bin'\/#' >base_exec.list ls -1 $RPM_BUILD_ROOT/%{_booksdir} |\ diff --git a/build/rpm/pcp.spec.in b/build/rpm/pcp.spec.in index f5f7d77a8..be5956bdc 100755 --- a/build/rpm/pcp.spec.in +++ b/build/rpm/pcp.spec.in @@ -1806,7 +1806,7 @@ awk '{print $NF}' $DIST_MANIFEST | egrep -e 'pmdas/zswap' > pmda_zswap_files awk '{print $NF}' $DIST_MANIFEST | egrep -e 'pmdas/unbound' > pmda_unbound_files awk '{print $NF}' $DIST_MANIFEST | egrep -e 'pmdas/mic' > pmda_mic_files awk '{print $NF}' $DIST_MANIFEST | egrep -e 'pcp-|pmatop|pmcollectl|pmiostat|pmrep' |\ -egrep -e 'atop|collectl|dmcache|free|iostat|numastat|verify|uptime|shping|pmrep' | \ +egrep -e 'atop|collectl|dmcache|free|iostat|numastat|pidstat|verify|uptime|shping|pmrep' | \ egrep -v 'testsuite|pmlogconf|pmieconf' \ > system_tools_files %endif diff --git a/qa/1078 b/qa/1078 new file mode 100755 index 000000000..ea3824eb9 --- /dev/null +++ b/qa/1078 @@ -0,0 +1,45 @@ +#!/bin/sh +# PCP QA Test No. 1078 +# Exercise pcp pidstat for an archive +# +# Copyright (c) 2016 Sitaram Shelke. +# + +seq=`basename $0` +echo "QA output created by $seq" + +. ./common.python + +status=1 # failure is the default! +$sudo rm -rf $tmp.* $seq.full +trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15 + +pcp_pidstat="$PCP_BINADM_DIR/pcp-pidstat" +test -x $pcp_pidstat || _notrun "No pcp-pidstat(1) installed" +pcp_pidstat="$python $pcp_pidstat" +pcp_archive="-a archives/pcp-pidstat" +# real QA test starts here +echo && echo === pcp-pidstat without filters +pcp $pcp_archive pidstat + +echo && echo === pcp-pidstat with user names +pcp $pcp_archive pidstat -U + +# echo && echo === pcp-pidstat with single user mode +# pcp $pcp_archive pidstat -I + +echo && echo === pcp-pidstat with given samples count +pcp $pcp_archive pidstat -s 3 -P 1,3,5 + +echo && echo === pcp-pidstat priority and scheduling information +pcp $pcp_archive pidstat -R + +echo && echo === pcp-pidstat memory utilization +pcp $pcp_archive pidstat -r + +echo && echo === pcp-pidstat stack utilization +pcp $pcp_archive pidstat -k + +status=0 +exit + diff --git a/qa/1078.out b/qa/1078.out new file mode 100644 index 000000000..ab8cab6f1 --- /dev/null +++ b/qa/1078.out @@ -0,0 +1,2769 @@ +QA output created by 1078 + +=== pcp-pidstat without filters +Linux ram-Lenovo 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 (4 CPU) +Timestamp UID PID usr system guest %CPU CPU Command +17:05:04 1000 5632 ? ? ? ? 1 indicator-keybo +17:05:04 0 1 ? ? ? ? 2 systemd +17:05:04 0 2 ? ? ? ? 2 kthreadd +17:05:04 0 3 ? ? ? ? 0 ksoftirqd/0 +17:05:04 0 5 ? ? ? ? 0 kworker/0:0H +17:05:04 0 7 ? ? ? ? 2 rcu_sched +17:05:04 0 8 ? ? ? ? 0 rcu_bh +17:05:04 0 9 ? ? ? ? 0 migration/0 +17:05:04 0 10 ? ? ? ? 0 watchdog/0 +17:05:04 0 11 ? ? ? ? 1 watchdog/1 +17:05:04 0 12 ? ? ? ? 1 migration/1 +17:05:04 0 13 ? ? ? ? 1 ksoftirqd/1 +17:05:04 0 15 ? ? ? ? 1 kworker/1:0H +17:05:04 0 16 ? ? ? ? 2 watchdog/2 +17:05:04 0 17 ? ? ? ? 2 migration/2 +17:05:04 0 18 ? ? ? ? 2 ksoftirqd/2 +17:05:04 1000 5635 ? ? ? ? 1 indicator-print +17:05:04 0 20 ? ? ? ? 2 kworker/2:0H +17:05:04 0 21 ? ? ? ? 3 watchdog/3 +17:05:04 0 22 ? ? ? ? 3 migration/3 +17:05:04 0 23 ? ? ? ? 3 ksoftirqd/3 +17:05:04 0 25 ? ? ? ? 3 kworker/3:0H +17:05:04 0 26 ? ? ? ? 0 kdevtmpfs +17:05:04 0 27 ? ? ? ? 1 netns +17:05:04 0 28 ? ? ? ? 1 perf +17:05:04 0 29 ? ? ? ? 0 khungtaskd +17:05:04 0 30 ? ? ? ? 1 writeback +17:05:04 0 31 ? ? ? ? 2 ksmd +17:05:04 0 32 ? ? ? ? 1 khugepaged +17:05:04 0 33 ? ? ? ? 2 crypto +17:05:04 0 34 ? ? ? ? 2 kintegrityd +17:05:04 0 35 ? ? ? ? 2 bioset +17:05:04 0 36 ? ? ? ? 2 kblockd +17:05:04 0 37 ? ? ? ? 2 ata_sff +17:05:04 0 38 ? ? ? ? 2 md +17:05:04 0 39 ? ? ? ? 3 devfreq_wq +17:05:04 0 3624 ? ? ? ? 1 agetty +17:05:04 0 43 ? ? ? ? 1 kswapd0 +17:05:04 0 44 ? ? ? ? 2 vmstat +17:05:04 0 45 ? ? ? ? 2 fsnotify_mark +17:05:04 0 46 ? ? ? ? 0 ecryptfs-kthrea +17:05:04 1000 5681 ? ? ? ? 1 evolution-sourc +17:05:04 0 5129 ? ? ? ? 2 upowerd +17:05:04 1000 5176 ? ? ? ? 1 systemd +17:05:04 1000 5178 ? ? ? ? 0 (sd-pam +17:05:04 0 23100 ? ? ? ? 0 kworker/0:0 +17:05:04 0 62 ? ? ? ? 2 kthrotld +17:05:04 1000 5183 ? ? ? ? 3 gnome-keyring-d +17:05:04 1000 5185 ? ? ? ? 1 upstart +17:05:04 0 66 ? ? ? ? 2 bioset +17:05:04 0 67 ? ? ? ? 2 bioset +17:05:04 0 68 ? ? ? ? 2 bioset +17:05:04 1000 5701 ? ? ? ? 0 nautilus +17:05:04 0 70 ? ? ? ? 2 bioset +17:05:04 0 71 ? ? ? ? 2 bioset +17:05:04 0 72 ? ? ? ? 2 bioset +17:05:04 0 73 ? ? ? ? 2 bioset +17:05:04 0 74 ? ? ? ? 2 bioset +17:05:04 0 75 ? ? ? ? 2 bioset +17:05:04 0 76 ? ? ? ? 2 bioset +17:05:04 0 77 ? ? ? ? 2 bioset +17:05:04 0 78 ? ? ? ? 2 bioset +17:05:04 0 79 ? ? ? ? 2 bioset +17:05:04 0 80 ? ? ? ? 2 bioset +17:05:04 0 81 ? ? ? ? 2 bioset +17:05:04 0 82 ? ? ? ? 2 bioset +17:05:04 0 83 ? ? ? ? 1 bioset +17:05:04 0 84 ? ? ? ? 1 bioset +17:05:04 0 85 ? ? ? ? 1 bioset +17:05:04 0 86 ? ? ? ? 1 bioset +17:05:04 0 87 ? ? ? ? 1 bioset +17:05:04 0 88 ? ? ? ? 1 bioset +17:05:04 0 89 ? ? ? ? 1 bioset +17:05:04 0 90 ? ? ? ? 1 bioset +17:05:04 0 605 ? ? ? ? 3 wl_event_handle +17:05:04 0 95 ? ? ? ? 2 ipv6_addrconf +17:05:04 1000 5734 ? ? ? ? 1 artha +17:05:04 0 619 ? ? ? ? 0 kvm-irqfd-clean +17:05:04 0 108 ? ? ? ? 1 deferwq +17:05:04 0 109 ? ? ? ? 1 charger_manager +17:05:04 1000 18263 ? ? ? ? 1 slack +17:05:04 1000 18549 ? ? ? ? 0 chrome +17:05:04 1000 5750 ? ? ? ? 0 redshift +17:05:04 0 25535 ? ? ? ? 3 kworker/3:0 +17:05:04 1000 18556 ? ? ? ? 2 chrome +17:05:04 123 5761 ? ? ? ? 2 geoclue +17:05:04 1000 5637 ? ? ? ? 2 indicator-sessi +17:05:04 1000 11395 ? ? ? ? 0 gvfsd-metadata +17:05:04 1000 5767 ? ? ? ? 0 gvfs-udisks2-vo +17:05:04 1000 18568 ? ? ? ? 0 chrome +17:05:04 1000 18569 ? ? ? ? 0 chrome +17:05:04 1000 24343 ? ? ? ? 2 atom +17:05:04 0 5774 ? ? ? ? 0 udisksd +17:05:04 0 1679 ? ? ? ? 0 kmemstick +17:05:04 999 1171 ? ? ? ? 3 pmcd +17:05:04 0 660 ? ? ? ? 0 jbd2/sda9-8 +17:05:04 0 661 ? ? ? ? 0 ext4-rsv-conver +17:05:04 1000 1174 ? ? ? ? 3 pmdaproc +17:05:04 0 151 ? ? ? ? 0 kpsmoused +17:05:04 1000 5272 ? ? ? ? 3 upstart-udev-br +17:05:04 0 1177 ? ? ? ? 0 pmdalinux +17:05:04 124 1178 ? ? ? ? 2 postgres +17:05:04 0 155 ? ? ? ? 3 scsi_tmf_1 +17:05:04 0 156 ? ? ? ? 1 scsi_eh_2 +17:05:04 0 157 ? ? ? ? 3 scsi_tmf_2 +17:05:04 0 158 ? ? ? ? 1 scsi_eh_3 +17:05:04 0 159 ? ? ? ? 0 scsi_tmf_3 +17:05:04 0 160 ? ? ? ? 0 scsi_eh_4 +17:05:04 0 161 ? ? ? ? 0 scsi_tmf_4 +17:05:04 0 162 ? ? ? ? 1 scsi_eh_5 +17:05:04 0 1051 ? ? ? ? 2 lightdm +17:05:04 1000 19424 ? ? ? ? 1 gnome-terminal- +17:05:04 1000 5286 ? ? ? ? 3 window-stack-br +17:05:04 1000 5800 ? ? ? ? 3 evolution-calen +17:05:04 0 169 ? ? ? ? 2 kfd_process_wq +17:05:04 0 172 ? ? ? ? 1 ttm_swap +17:05:04 0 174 ? ? ? ? 1 bioset +17:05:04 1000 18291 ? ? ? ? 2 slack +17:05:04 1000 5274 ? ? ? ? 3 dbus-daemon +17:05:04 0 23736 ? ? ? ? 3 kworker/3:1 +17:05:04 1000 6329 ? ? ? ? 2 update-notifier +17:05:04 1000 5818 ? ? ? ? 0 gvfs-mtp-volume +17:05:04 0 5829 ? ? ? ? 1 fwupd +17:05:04 1000 6855 ? ? ? ? 0 deja-dup-monito +17:05:04 0 22728 ? ? ? ? 0 kworker/u16:3 +17:05:04 1000 11327 ? ? ? ? 3 gvfsd-dnssd +17:05:04 999 4810 ? ? ? ? 2 pmlogger +17:05:04 1000 18465 ? ? ? ? 0 chrome +17:05:04 113 5154 ? ? ? ? 0 colord +17:05:04 0 24782 ? ? ? ? 3 kworker/3:2 +17:05:04 0 461 ? ? ? ? 2 edac-poller +17:05:04 1000 18641 ? ? ? ? 3 chrome +17:05:04 1000 5842 ? ? ? ? 3 gvfsd-trash +17:05:04 1000 5633 ? ? ? ? 3 indicator-sound +17:05:04 122 4821 ? ? ? ? 0 unbound +17:05:04 1000 5335 ? ? ? ? 2 ibus-daemon +17:05:04 1000 24868 ? ? ? ? 0 python +17:05:04 1000 21722 ? ? ? ? 1 chrome +17:05:04 0 24783 ? ? ? ? 0 kworker/u16:2 +17:05:04 1000 18420 ? ? ? ? 1 cat +17:05:04 0 18062 ? ? ? ? 2 dhclient +17:05:04 1000 5343 ? ? ? ? 3 upstart-dbus-br +17:05:04 1000 6023 ? ? ? ? 2 gconfd-2 +17:05:04 1000 5345 ? ? ? ? 0 upstart-dbus-br +17:05:04 0 22757 ? ? ? ? 1 kworker/1:0 +17:05:04 0 21457 ? ? ? ? 2 kworker/2:2 +17:05:04 1000 5866 ? ? ? ? 2 evolution-calen +17:05:04 1000 5671 ? ? ? ? 3 indicator-appli +17:05:04 1000 5876 ? ? ? ? 3 evolution-addre +17:05:04 1000 5878 ? ? ? ? 3 evolution-calen +17:05:04 1000 5367 ? ? ? ? 0 gpg-agent +17:05:04 0 1031 ? ? ? ? 0 polkitd +17:05:04 0 249 ? ? ? ? 0 raid5wq +17:05:04 1000 8954 ? ? ? ? 2 unity-scope-hom +17:05:04 1000 18421 ? ? ? ? 1 cat +17:05:04 65534 5273 ? ? ? ? 3 dnsmasq +17:05:04 1000 5375 ? ? ? ? 3 gvfsd +17:05:04 1000 25344 ? ? ? ? 1 bash +17:05:04 1000 5380 ? ? ? ? 3 gvfsd-fuse +17:05:04 1000 5895 ? ? ? ? 2 evolution-addre +17:05:04 1000 8969 ? ? ? ? 3 unity-files-dae +17:05:04 1000 8971 ? ? ? ? 3 unity-music-dae +17:05:04 100 780 ? ? ? ? 3 systemd-timesyn +17:05:04 1000 5389 ? ? ? ? 3 ibus-dconf +17:05:04 1000 5395 ? ? ? ? 3 upstart-file-br +17:05:04 1000 5396 ? ? ? ? 3 ibus-ui-gtk3 +17:05:04 1000 18503 ? ? ? ? 1 chrome +17:05:04 1000 5398 ? ? ? ? 1 ibus-x11 +17:05:04 0 279 ? ? ? ? 0 bioset +17:05:04 1000 7130 ? ? ? ? 0 notify-osd +17:05:04 1000 5806 ? ? ? ? 1 gvfs-gphoto2-vo +17:05:04 1000 5789 ? ? ? ? 2 gvfs-goa-volume +17:05:04 1000 18224 ? ? ? ? 1 slack +17:05:04 0 17945 ? ? ? ? 3 irq/30-mei_me +17:05:04 1000 5414 ? ? ? ? 0 at-spi-bus-laun +17:05:04 1000 19642 ? ? ? ? 3 atom +17:05:04 1000 5419 ? ? ? ? 2 dbus-daemon +17:05:04 1000 18220 ? ? ? ? 1 slack +17:05:04 1000 5421 ? ? ? ? 2 at-spi2-registr +17:05:04 104 814 ? ? ? ? 2 rsyslogd +17:05:04 106 815 ? ? ? ? 1 dbus-daemon +17:05:04 0 304 ? ? ? ? 1 kworker/1:1H +17:05:04 0 306 ? ? ? ? 3 jbd2/sda8-8 +17:05:04 0 307 ? ? ? ? 1 ext4-rsv-conver +17:05:04 1000 5946 ? ? ? ? 1 zeitgeist-datah +17:05:04 0 22751 ? ? ? ? 2 kworker/u16:0 +17:05:04 1000 5441 ? ? ? ? 0 unity-settings- +17:05:04 1000 5442 ? ? ? ? 2 bamfdaemon +17:05:04 0 22852 ? ? ? ? 0 kworker/u16:1 +17:05:04 1000 5957 ? ? ? ? 0 zeitgeist-daemo +17:05:04 1000 18253 ? ? ? ? 0 slack +17:05:04 0 4937 ? ? ? ? 2 apache2 +17:05:04 0 25419 ? ? ? ? 2 kworker/2:1 +17:05:04 33 4940 ? ? ? ? 0 apache2 +17:05:04 33 4941 ? ? ? ? 3 apache2 +17:05:04 1000 5456 ? ? ? ? 2 hud-service +17:05:04 1000 5459 ? ? ? ? 2 gnome-session-b +17:05:04 1000 5461 ? ? ? ? 2 unity-panel-ser +17:05:04 1000 5462 ? ? ? ? 0 compiz +17:05:04 0 855 ? ? ? ? 2 NetworkManager +17:05:04 124 1369 ? ? ? ? 2 postgres +17:05:04 124 1370 ? ? ? ? 0 postgres +17:05:04 124 1371 ? ? ? ? 0 postgres +17:05:04 124 1372 ? ? ? ? 2 postgres +17:05:04 124 1373 ? ? ? ? 0 postgres +17:05:04 0 862 ? ? ? ? 1 cron +17:05:04 0 351 ? ? ? ? 0 kauditd +17:05:04 1000 18428 ? ? ? ? 2 chrome +17:05:04 0 866 ? ? ? ? 1 ModemManager +17:05:04 1000 19618 ? ? ? ? 0 atom +17:05:04 0 361 ? ? ? ? 3 systemd-journal +17:05:04 1000 18459 ? ? ? ? 0 chrome +17:05:04 0 1683 ? ? ? ? 3 rtsx_usb_ms_2 +17:05:04 0 372 ? ? ? ? 1 lvmetad +17:05:04 0 886 ? ? ? ? 1 acpid +17:05:04 0 888 ? ? ? ? 2 systemd-logind +17:05:04 0 63 ? ? ? ? 2 acpi_thermal_pm +17:05:04 0 892 ? ? ? ? 0 atd +17:05:04 0 895 ? ? ? ? 3 accounts-daemon +17:05:04 0 897 ? ? ? ? 3 thermald +17:05:04 0 386 ? ? ? ? 1 systemd-udevd +17:05:04 1000 18411 ? ? ? ? 2 chrome +17:05:04 0 662 ? ? ? ? 3 jbd2/sda10-8 +17:05:04 1000 5953 ? ? ? ? 1 sh +17:05:04 109 904 ? ? ? ? 2 whoopsie +17:05:04 0 1087 ? ? ? ? 1 Xorg +17:05:04 0 663 ? ? ? ? 1 ext4-rsv-conver +17:05:04 1000 18498 ? ? ? ? 1 chrome +17:05:04 111 912 ? ? ? ? 3 avahi-daemon +17:05:04 0 401 ? ? ? ? 0 kworker/0:1H +17:05:04 0 915 ? ? ? ? 3 snapd +17:05:04 0 24981 ? ? ? ? 0 kworker/0:2 +17:05:04 1000 18508 ? ? ? ? 2 chrome +17:05:04 0 153 ? ? ? ? 3 scsi_tmf_0 +17:05:04 0 154 ? ? ? ? 1 scsi_eh_1 +17:05:04 1000 19653 ? ? ? ? 0 atom +17:05:04 0 1173 ? ? ? ? 1 pmdaroot +17:05:04 1000 18337 ? ? ? ? 0 slack +17:05:04 999 1179 ? ? ? ? 3 pmdasimple +17:05:04 1000 5702 ? ? ? ? 3 unity-fallback- +17:05:04 1000 5964 ? ? ? ? 2 zeitgeist-fts +17:05:04 1000 18495 ? ? ? ? 0 chrome +17:05:04 0 24411 ? ? ? ? 1 kworker/1:1 +17:05:04 1000 5703 ? ? ? ? 3 polkit-gnome-au +17:05:04 0 5039 ? ? ? ? 0 lightdm +17:05:04 1000 11289 ? ? ? ? 0 gvfsd-network +17:05:04 1000 19614 ? ? ? ? 0 atom +17:05:04 0 25460 ? ? ? ? 1 kworker/1:2 +17:05:04 1000 5794 ? ? ? ? 2 gvfs-afc-volume +17:05:04 1000 5620 ? ? ? ? 3 indicator-messa +17:05:04 1000 23704 ? ? ? ? 1 gedit +17:05:04 1000 5621 ? ? ? ? 0 indicator-bluet +17:05:04 1000 18581 ? ? ? ? 2 chrome +17:05:04 0 24005 ? ? ? ? 0 kworker/0:1 +17:05:04 1000 5708 ? ? ? ? 3 nm-applet +17:05:04 0 24523 ? ? ? ? 1 bioset +17:05:04 0 1186 ? ? ? ? 0 wpa_supplicant +17:05:04 1000 5709 ? ? ? ? 3 gnome-software +17:05:04 118 5072 ? ? ? ? 1 rtkit-daemon +17:05:04 0 465 ? ? ? ? 2 kworker/2:1H +17:05:04 0 163 ? ? ? ? 0 scsi_tmf_5 +17:05:04 0 468 ? ? ? ? 3 kworker/3:1H +17:05:04 1000 22777 ? ? ? ? 0 chrome +17:05:04 0 152 ? ? ? ? 1 scsi_eh_0 +17:05:04 0 1175 ? ? ? ? 1 pmdaxfs +17:05:04 1000 5597 ? ? ? ? 1 ibus-engine-sim +17:05:04 0 24229 ? ? ? ? 2 kworker/2:0 +17:05:04 1000 5600 ? ? ? ? 0 syndaemon +17:05:04 1000 5604 ? ? ? ? 0 pulseaudio +17:05:04 1000 19431 ? ? ? ? 3 bash +17:05:04 1000 5608 ? ? ? ? 2 dconf-service +17:05:04 1000 5628 ? ? ? ? 1 indicator-datet +17:05:04 111 1002 ? ? ? ? 3 avahi-daemon +17:05:04 0 1003 ? ? ? ? 3 cups-browsed +17:05:04 1000 25541 ? ? ? ? 0 pmlogger +17:05:04 1000 8967 ? ? ? ? 0 unity-scope-loa +17:05:04 1000 19539 ? ? ? ? 3 chrome +17:05:04 0 1012 ? ? ? ? 0 irqbalance +17:05:04 0 1013 ? ? ? ? 3 mdadm +17:05:04 1000 5623 ? ? ? ? 2 indicator-power +17:05:04 1000 18424 ? ? ? ? 1 chrome +17:05:04 1000 18425 ? ? ? ? 0 nacl_helper +17:05:04 999 1176 ? ? ? ? 2 pmdasample +17:05:04 0 508 ? ? ? ? 1 cfg80211 +17:05:04 1000 18583 ? ? ? ? 1 chrome +Timestamp UID PID usr system guest %CPU CPU Command +17:05:05 1000 5632 0.0 0.0 0.0 0.0 1 indicator-keybo +17:05:05 0 1 0.0 0.0 0.0 0.0 2 systemd +17:05:05 0 2 0.0 0.0 0.0 0.0 2 kthreadd +17:05:05 0 3 0.0 0.0 0.0 0.0 0 ksoftirqd/0 +17:05:05 0 5 0.0 0.0 0.0 0.0 0 kworker/0:0H +17:05:05 0 7 0.0 0.0 0.0 0.0 1 rcu_sched +17:05:05 0 8 0.0 0.0 0.0 0.0 0 rcu_bh +17:05:05 0 9 0.0 0.0 0.0 0.0 0 migration/0 +17:05:05 0 10 0.0 0.0 0.0 0.0 0 watchdog/0 +17:05:05 0 11 0.0 0.0 0.0 0.0 1 watchdog/1 +17:05:05 0 12 0.0 0.0 0.0 0.0 1 migration/1 +17:05:05 0 13 0.0 0.0 0.0 0.0 1 ksoftirqd/1 +17:05:05 0 15 0.0 0.0 0.0 0.0 1 kworker/1:0H +17:05:05 0 16 0.0 0.0 0.0 0.0 2 watchdog/2 +17:05:05 0 17 0.0 0.0 0.0 0.0 2 migration/2 +17:05:05 0 18 0.0 0.0 0.0 0.0 2 ksoftirqd/2 +17:05:05 1000 5635 0.0 0.0 0.0 0.0 1 indicator-print +17:05:05 0 20 0.0 0.0 0.0 0.0 2 kworker/2:0H +17:05:05 0 21 0.0 0.0 0.0 0.0 3 watchdog/3 +17:05:05 0 22 0.0 0.0 0.0 0.0 3 migration/3 +17:05:05 0 23 0.0 0.0 0.0 0.0 3 ksoftirqd/3 +17:05:05 0 25 0.0 0.0 0.0 0.0 3 kworker/3:0H +17:05:05 0 26 0.0 0.0 0.0 0.0 0 kdevtmpfs +17:05:05 0 27 0.0 0.0 0.0 0.0 1 netns +17:05:05 0 28 0.0 0.0 0.0 0.0 1 perf +17:05:05 0 29 0.0 0.0 0.0 0.0 0 khungtaskd +17:05:05 0 30 0.0 0.0 0.0 0.0 1 writeback +17:05:05 0 31 0.0 0.0 0.0 0.0 2 ksmd +17:05:05 0 32 0.0 0.0 0.0 0.0 2 khugepaged +17:05:05 0 33 0.0 0.0 0.0 0.0 2 crypto +17:05:05 0 34 0.0 0.0 0.0 0.0 2 kintegrityd +17:05:05 0 35 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 36 0.0 0.0 0.0 0.0 2 kblockd +17:05:05 0 37 0.0 0.0 0.0 0.0 2 ata_sff +17:05:05 0 38 0.0 0.0 0.0 0.0 2 md +17:05:05 0 39 0.0 0.0 0.0 0.0 3 devfreq_wq +17:05:05 0 3624 0.0 0.0 0.0 0.0 1 agetty +17:05:05 0 43 0.0 0.0 0.0 0.0 1 kswapd0 +17:05:05 0 44 0.0 0.0 0.0 0.0 2 vmstat +17:05:05 0 45 0.0 0.0 0.0 0.0 2 fsnotify_mark +17:05:05 0 46 0.0 0.0 0.0 0.0 0 ecryptfs-kthrea +17:05:05 1000 5681 0.0 0.0 0.0 0.0 1 evolution-sourc +17:05:05 0 5129 0.0 0.0 0.0 0.0 2 upowerd +17:05:05 1000 5176 0.0 0.0 0.0 0.0 1 systemd +17:05:05 1000 5178 0.0 0.0 0.0 0.0 0 (sd-pam +17:05:05 0 23100 0.0 0.0 0.0 0.0 0 kworker/0:0 +17:05:05 0 62 0.0 0.0 0.0 0.0 2 kthrotld +17:05:05 1000 5183 0.0 0.0 0.0 0.0 3 gnome-keyring-d +17:05:05 1000 5185 0.0 0.0 0.0 0.0 1 upstart +17:05:05 0 66 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 67 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 68 0.0 0.0 0.0 0.0 2 bioset +17:05:05 1000 5701 0.0 0.0 0.0 0.0 1 nautilus +17:05:05 0 70 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 71 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 72 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 73 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 74 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 75 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 76 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 77 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 78 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 79 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 80 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 81 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 82 0.0 0.0 0.0 0.0 2 bioset +17:05:05 0 83 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 84 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 85 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 86 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 87 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 88 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 89 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 90 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 605 0.0 0.0 0.0 0.0 3 wl_event_handle +17:05:05 0 95 0.0 0.0 0.0 0.0 2 ipv6_addrconf +17:05:05 1000 5734 0.0 0.0 0.0 0.0 1 artha +17:05:05 0 619 0.0 0.0 0.0 0.0 0 kvm-irqfd-clean +17:05:05 0 108 0.0 0.0 0.0 0.0 1 deferwq +17:05:05 0 109 0.0 0.0 0.0 0.0 1 charger_manager +17:05:05 1000 18263 0.0 0.0 0.0 0.0 1 slack +17:05:05 1000 18549 0.0 0.0 0.0 0.0 0 chrome +17:05:05 1000 5750 0.0 0.0 0.0 0.0 0 redshift +17:05:05 0 25535 0.0 0.0 0.0 0.0 3 kworker/3:0 +17:05:05 1000 18556 0.0 0.0 0.0 0.0 2 chrome +17:05:05 123 5761 0.0 0.0 0.0 0.0 2 geoclue +17:05:05 1000 5637 0.0 0.0 0.0 0.0 2 indicator-sessi +17:05:05 1000 11395 0.0 0.0 0.0 0.0 0 gvfsd-metadata +17:05:05 1000 5767 0.0 0.0 0.0 0.0 0 gvfs-udisks2-vo +17:05:05 1000 18568 0.0 0.0 0.0 0.0 0 chrome +17:05:05 1000 18569 0.0 0.0 0.0 0.0 0 chrome +17:05:05 1000 24343 0.0 0.0 0.0 0.0 2 atom +17:05:05 0 5774 0.0 0.0 0.0 0.0 0 udisksd +17:05:05 0 1679 0.0 0.0 0.0 0.0 0 kmemstick +17:05:05 999 1171 0.0 0.0 0.0 0.0 2 pmcd +17:05:05 0 660 0.0 0.0 0.0 0.0 0 jbd2/sda9-8 +17:05:05 0 661 0.0 0.0 0.0 0.0 0 ext4-rsv-conver +17:05:05 1000 1174 1.0 1.0 0.0 2.0 3 pmdaproc +17:05:05 0 151 0.0 0.0 0.0 0.0 0 kpsmoused +17:05:05 1000 5272 0.0 0.0 0.0 0.0 3 upstart-udev-br +17:05:05 0 1177 0.0 0.0 0.0 0.0 0 pmdalinux +17:05:05 124 1178 0.0 0.0 0.0 0.0 2 postgres +17:05:05 0 155 0.0 0.0 0.0 0.0 3 scsi_tmf_1 +17:05:05 0 156 0.0 0.0 0.0 0.0 1 scsi_eh_2 +17:05:05 0 157 0.0 0.0 0.0 0.0 3 scsi_tmf_2 +17:05:05 0 158 0.0 0.0 0.0 0.0 1 scsi_eh_3 +17:05:05 0 159 0.0 0.0 0.0 0.0 0 scsi_tmf_3 +17:05:05 0 160 0.0 0.0 0.0 0.0 0 scsi_eh_4 +17:05:05 0 161 0.0 0.0 0.0 0.0 0 scsi_tmf_4 +17:05:05 0 162 0.0 0.0 0.0 0.0 1 scsi_eh_5 +17:05:05 0 1051 0.0 0.0 0.0 0.0 2 lightdm +17:05:05 1000 19424 0.0 0.0 0.0 0.0 1 gnome-terminal- +17:05:05 1000 5286 0.0 0.0 0.0 0.0 3 window-stack-br +17:05:05 1000 5800 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:05 0 169 0.0 0.0 0.0 0.0 2 kfd_process_wq +17:05:05 0 172 0.0 0.0 0.0 0.0 1 ttm_swap +17:05:05 0 174 0.0 0.0 0.0 0.0 1 bioset +17:05:05 1000 18291 0.0 0.0 0.0 0.0 2 slack +17:05:05 1000 5274 0.0 0.0 0.0 0.0 3 dbus-daemon +17:05:05 0 23736 0.0 0.0 0.0 0.0 3 kworker/3:1 +17:05:05 1000 6329 0.0 0.0 0.0 0.0 2 update-notifier +17:05:05 1000 5818 0.0 0.0 0.0 0.0 0 gvfs-mtp-volume +17:05:05 0 5829 0.0 0.0 0.0 0.0 1 fwupd +17:05:05 1000 6855 0.0 0.0 0.0 0.0 0 deja-dup-monito +17:05:05 0 22728 0.0 0.0 0.0 0.0 0 kworker/u16:3 +17:05:05 1000 11327 0.0 0.0 0.0 0.0 3 gvfsd-dnssd +17:05:05 999 4810 0.0 0.0 0.0 0.0 2 pmlogger +17:05:05 1000 18465 0.0 0.0 0.0 0.0 0 chrome +17:05:05 113 5154 0.0 0.0 0.0 0.0 0 colord +17:05:05 0 24782 0.0 0.0 0.0 0.0 3 kworker/3:2 +17:05:05 0 461 0.0 0.0 0.0 0.0 2 edac-poller +17:05:05 1000 18641 0.0 0.0 0.0 0.0 1 chrome +17:05:05 1000 5842 0.0 0.0 0.0 0.0 3 gvfsd-trash +17:05:05 1000 5633 0.0 0.0 0.0 0.0 3 indicator-sound +17:05:05 122 4821 0.0 0.0 0.0 0.0 0 unbound +17:05:05 1000 5335 0.0 0.0 0.0 0.0 2 ibus-daemon +17:05:05 1000 24868 0.0 0.0 0.0 0.0 0 python +17:05:05 1000 21722 0.0 0.0 0.0 0.0 1 chrome +17:05:05 0 24783 0.0 0.0 0.0 0.0 0 kworker/u16:2 +17:05:05 1000 18420 0.0 0.0 0.0 0.0 1 cat +17:05:05 0 18062 0.0 0.0 0.0 0.0 2 dhclient +17:05:05 1000 5343 0.0 0.0 0.0 0.0 3 upstart-dbus-br +17:05:05 1000 6023 0.0 0.0 0.0 0.0 2 gconfd-2 +17:05:05 1000 5345 0.0 0.0 0.0 0.0 0 upstart-dbus-br +17:05:05 0 22757 0.0 0.0 0.0 0.0 1 kworker/1:0 +17:05:05 0 21457 0.0 0.0 0.0 0.0 2 kworker/2:2 +17:05:05 1000 5866 0.0 0.0 0.0 0.0 2 evolution-calen +17:05:05 1000 5671 0.0 0.0 0.0 0.0 3 indicator-appli +17:05:05 1000 5876 0.0 0.0 0.0 0.0 3 evolution-addre +17:05:05 1000 5878 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:05 1000 5367 0.0 0.0 0.0 0.0 0 gpg-agent +17:05:05 0 1031 0.0 0.0 0.0 0.0 0 polkitd +17:05:05 0 249 0.0 0.0 0.0 0.0 0 raid5wq +17:05:05 1000 8954 0.0 0.0 0.0 0.0 2 unity-scope-hom +17:05:05 1000 18421 0.0 0.0 0.0 0.0 1 cat +17:05:05 65534 5273 0.0 0.0 0.0 0.0 3 dnsmasq +17:05:05 1000 5375 0.0 0.0 0.0 0.0 3 gvfsd +17:05:05 1000 25344 0.0 0.0 0.0 0.0 1 bash +17:05:05 1000 5380 0.0 0.0 0.0 0.0 3 gvfsd-fuse +17:05:05 1000 5895 0.0 0.0 0.0 0.0 2 evolution-addre +17:05:05 1000 8969 0.0 0.0 0.0 0.0 3 unity-files-dae +17:05:05 1000 8971 0.0 0.0 0.0 0.0 3 unity-music-dae +17:05:05 100 780 0.0 0.0 0.0 0.0 3 systemd-timesyn +17:05:05 1000 5389 0.0 0.0 0.0 0.0 3 ibus-dconf +17:05:05 1000 5395 0.0 0.0 0.0 0.0 3 upstart-file-br +17:05:05 1000 5396 0.0 0.0 0.0 0.0 3 ibus-ui-gtk3 +17:05:05 1000 18503 0.0 0.0 0.0 0.0 1 chrome +17:05:05 1000 5398 0.0 0.0 0.0 0.0 1 ibus-x11 +17:05:05 0 279 0.0 0.0 0.0 0.0 0 bioset +17:05:05 1000 7130 0.0 0.0 0.0 0.0 0 notify-osd +17:05:05 1000 5806 0.0 0.0 0.0 0.0 1 gvfs-gphoto2-vo +17:05:05 1000 5789 0.0 0.0 0.0 0.0 2 gvfs-goa-volume +17:05:05 1000 18224 0.0 0.0 0.0 0.0 1 slack +17:05:05 0 17945 0.0 0.0 0.0 0.0 3 irq/30-mei_me +17:05:05 1000 5414 0.0 0.0 0.0 0.0 0 at-spi-bus-laun +17:05:05 1000 19642 0.0 0.0 0.0 0.0 3 atom +17:05:05 1000 5419 0.0 0.0 0.0 0.0 2 dbus-daemon +17:05:05 1000 18220 0.0 0.0 0.0 0.0 1 slack +17:05:05 1000 5421 0.0 0.0 0.0 0.0 2 at-spi2-registr +17:05:05 104 814 0.0 0.0 0.0 0.0 2 rsyslogd +17:05:05 106 815 0.0 0.0 0.0 0.0 1 dbus-daemon +17:05:05 0 304 0.0 0.0 0.0 0.0 1 kworker/1:1H +17:05:05 0 306 0.0 0.0 0.0 0.0 3 jbd2/sda8-8 +17:05:05 0 307 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:05 1000 5946 0.0 0.0 0.0 0.0 1 zeitgeist-datah +17:05:05 0 22751 0.0 0.0 0.0 0.0 2 kworker/u16:0 +17:05:05 1000 5441 0.0 0.0 0.0 0.0 0 unity-settings- +17:05:05 1000 5442 0.0 0.0 0.0 0.0 2 bamfdaemon +17:05:05 0 22852 0.0 0.0 0.0 0.0 0 kworker/u16:1 +17:05:05 1000 5957 0.0 0.0 0.0 0.0 0 zeitgeist-daemo +17:05:05 1000 18253 0.0 0.0 0.0 0.0 0 slack +17:05:05 0 4937 0.0 0.0 0.0 0.0 2 apache2 +17:05:05 0 25419 0.0 0.0 0.0 0.0 2 kworker/2:1 +17:05:05 33 4940 0.0 1.0 0.0 1.0 0 apache2 +17:05:05 33 4941 0.0 0.0 0.0 0.0 3 apache2 +17:05:05 1000 5456 0.0 0.0 0.0 0.0 2 hud-service +17:05:05 1000 5459 0.0 0.0 0.0 0.0 2 gnome-session-b +17:05:05 1000 5461 0.0 0.0 0.0 0.0 2 unity-panel-ser +17:05:05 1000 5462 0.0 0.0 0.0 0.0 2 compiz +17:05:05 0 855 0.0 0.0 0.0 0.0 2 NetworkManager +17:05:05 124 1369 0.0 0.0 0.0 0.0 2 postgres +17:05:05 124 1370 0.0 0.0 0.0 0.0 0 postgres +17:05:05 124 1371 0.0 0.0 0.0 0.0 0 postgres +17:05:05 124 1372 0.0 0.0 0.0 0.0 2 postgres +17:05:05 124 1373 0.0 0.0 0.0 0.0 0 postgres +17:05:05 0 862 0.0 0.0 0.0 0.0 1 cron +17:05:05 0 351 0.0 0.0 0.0 0.0 0 kauditd +17:05:05 1000 18428 0.0 0.0 0.0 0.0 2 chrome +17:05:05 0 866 0.0 0.0 0.0 0.0 1 ModemManager +17:05:05 1000 19618 0.0 0.0 0.0 0.0 0 atom +17:05:05 0 361 0.0 0.0 0.0 0.0 3 systemd-journal +17:05:05 1000 18459 0.0 0.0 0.0 0.0 2 chrome +17:05:05 0 1683 0.0 0.0 0.0 0.0 3 rtsx_usb_ms_2 +17:05:05 0 372 0.0 0.0 0.0 0.0 1 lvmetad +17:05:05 0 886 0.0 0.0 0.0 0.0 1 acpid +17:05:05 0 888 0.0 0.0 0.0 0.0 2 systemd-logind +17:05:05 0 63 0.0 0.0 0.0 0.0 2 acpi_thermal_pm +17:05:05 0 892 0.0 0.0 0.0 0.0 0 atd +17:05:05 0 895 0.0 0.0 0.0 0.0 3 accounts-daemon +17:05:05 0 897 0.0 0.0 0.0 0.0 3 thermald +17:05:05 0 386 0.0 0.0 0.0 0.0 1 systemd-udevd +17:05:05 1000 18411 2.0 0.0 0.0 2.0 1 chrome +17:05:05 0 662 0.0 0.0 0.0 0.0 3 jbd2/sda10-8 +17:05:05 1000 5953 0.0 0.0 0.0 0.0 1 sh +17:05:05 109 904 0.0 0.0 0.0 0.0 2 whoopsie +17:05:05 0 1087 1.0 0.0 0.0 1.0 1 Xorg +17:05:05 0 663 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:05 1000 18498 0.0 0.0 0.0 0.0 0 chrome +17:05:05 111 912 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:05 0 401 0.0 0.0 0.0 0.0 0 kworker/0:1H +17:05:05 0 915 0.0 0.0 0.0 0.0 3 snapd +17:05:05 0 24981 0.0 0.0 0.0 0.0 0 kworker/0:2 +17:05:05 1000 18508 0.0 0.0 0.0 0.0 2 chrome +17:05:05 0 153 0.0 0.0 0.0 0.0 3 scsi_tmf_0 +17:05:05 0 154 0.0 0.0 0.0 0.0 1 scsi_eh_1 +17:05:05 1000 19653 0.0 0.0 0.0 0.0 0 atom +17:05:05 0 1173 0.0 0.0 0.0 0.0 1 pmdaroot +17:05:05 1000 18337 0.0 0.0 0.0 0.0 3 slack +17:05:05 999 1179 0.0 0.0 0.0 0.0 3 pmdasimple +17:05:05 1000 5702 0.0 0.0 0.0 0.0 3 unity-fallback- +17:05:05 1000 5964 0.0 0.0 0.0 0.0 2 zeitgeist-fts +17:05:05 1000 18495 0.0 0.0 0.0 0.0 0 chrome +17:05:05 0 24411 0.0 0.0 0.0 0.0 1 kworker/1:1 +17:05:05 1000 5703 0.0 0.0 0.0 0.0 3 polkit-gnome-au +17:05:05 0 5039 0.0 0.0 0.0 0.0 0 lightdm +17:05:05 1000 11289 0.0 0.0 0.0 0.0 0 gvfsd-network +17:05:05 1000 19614 0.0 0.0 0.0 0.0 0 atom +17:05:05 0 25460 0.0 0.0 0.0 0.0 1 kworker/1:2 +17:05:05 1000 5794 0.0 0.0 0.0 0.0 2 gvfs-afc-volume +17:05:05 1000 5620 0.0 0.0 0.0 0.0 3 indicator-messa +17:05:05 1000 23704 0.0 0.0 0.0 0.0 1 gedit +17:05:05 1000 5621 0.0 0.0 0.0 0.0 0 indicator-bluet +17:05:05 1000 18581 0.0 0.0 0.0 0.0 2 chrome +17:05:05 0 24005 0.0 0.0 0.0 0.0 0 kworker/0:1 +17:05:05 1000 5708 0.0 0.0 0.0 0.0 3 nm-applet +17:05:05 0 24523 0.0 0.0 0.0 0.0 1 bioset +17:05:05 0 1186 0.0 0.0 0.0 0.0 0 wpa_supplicant +17:05:05 1000 5709 0.0 0.0 0.0 0.0 3 gnome-software +17:05:05 118 5072 0.0 0.0 0.0 0.0 1 rtkit-daemon +17:05:05 0 465 0.0 0.0 0.0 0.0 2 kworker/2:1H +17:05:05 0 163 0.0 0.0 0.0 0.0 0 scsi_tmf_5 +17:05:05 0 468 0.0 0.0 0.0 0.0 3 kworker/3:1H +17:05:05 1000 22777 10.7 1.1 0.0 11.799999999999999 0 chrome +17:05:05 0 152 0.0 0.0 0.0 0.0 1 scsi_eh_0 +17:05:05 0 1175 0.0 0.0 0.0 0.0 1 pmdaxfs +17:05:05 1000 5597 0.0 0.0 0.0 0.0 1 ibus-engine-sim +17:05:05 0 24229 0.0 0.0 0.0 0.0 2 kworker/2:0 +17:05:05 1000 5600 0.0 0.0 0.0 0.0 0 syndaemon +17:05:05 1000 5604 1.0 1.0 0.0 2.0 2 pulseaudio +17:05:05 1000 19431 0.0 0.0 0.0 0.0 3 bash +17:05:05 1000 5608 0.0 0.0 0.0 0.0 2 dconf-service +17:05:05 1000 5628 0.0 0.0 0.0 0.0 1 indicator-datet +17:05:05 111 1002 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:05 0 1003 0.0 0.0 0.0 0.0 3 cups-browsed +17:05:05 1000 25541 0.0 0.0 0.0 0.0 3 pmlogger +17:05:05 1000 8967 0.0 0.0 0.0 0.0 0 unity-scope-loa +17:05:05 1000 19539 1.0 0.0 0.0 1.0 3 chrome +17:05:05 0 1012 0.0 0.0 0.0 0.0 0 irqbalance +17:05:05 0 1013 0.0 0.0 0.0 0.0 3 mdadm +17:05:05 1000 5623 0.0 0.0 0.0 0.0 2 indicator-power +17:05:05 1000 18424 0.0 0.0 0.0 0.0 1 chrome +17:05:05 1000 18425 0.0 0.0 0.0 0.0 0 nacl_helper +17:05:05 999 1176 0.0 0.0 0.0 0.0 2 pmdasample +17:05:05 0 508 0.0 0.0 0.0 0.0 1 cfg80211 +17:05:05 1000 18583 0.0 0.0 0.0 0.0 1 chrome +Timestamp UID PID usr system guest %CPU CPU Command +17:05:06 1000 5632 0.0 0.0 0.0 0.0 1 indicator-keybo +17:05:06 0 1 0.0 0.0 0.0 0.0 2 systemd +17:05:06 0 2 0.0 0.0 0.0 0.0 2 kthreadd +17:05:06 0 3 0.0 0.0 0.0 0.0 0 ksoftirqd/0 +17:05:06 0 5 0.0 0.0 0.0 0.0 0 kworker/0:0H +17:05:06 0 7 0.0 0.0 0.0 0.0 0 rcu_sched +17:05:06 0 8 0.0 0.0 0.0 0.0 0 rcu_bh +17:05:06 0 9 0.0 0.0 0.0 0.0 0 migration/0 +17:05:06 0 10 0.0 0.0 0.0 0.0 0 watchdog/0 +17:05:06 0 11 0.0 0.0 0.0 0.0 1 watchdog/1 +17:05:06 0 12 0.0 0.0 0.0 0.0 1 migration/1 +17:05:06 0 13 0.0 0.0 0.0 0.0 1 ksoftirqd/1 +17:05:06 0 15 0.0 0.0 0.0 0.0 1 kworker/1:0H +17:05:06 0 16 0.0 0.0 0.0 0.0 2 watchdog/2 +17:05:06 0 17 0.0 0.0 0.0 0.0 2 migration/2 +17:05:06 0 18 0.0 0.0 0.0 0.0 2 ksoftirqd/2 +17:05:06 1000 5635 0.0 0.0 0.0 0.0 1 indicator-print +17:05:06 0 20 0.0 0.0 0.0 0.0 2 kworker/2:0H +17:05:06 0 21 0.0 0.0 0.0 0.0 3 watchdog/3 +17:05:06 0 22 0.0 0.0 0.0 0.0 3 migration/3 +17:05:06 0 23 0.0 0.0 0.0 0.0 3 ksoftirqd/3 +17:05:06 0 25 0.0 0.0 0.0 0.0 3 kworker/3:0H +17:05:06 0 26 0.0 0.0 0.0 0.0 0 kdevtmpfs +17:05:06 0 27 0.0 0.0 0.0 0.0 1 netns +17:05:06 0 28 0.0 0.0 0.0 0.0 1 perf +17:05:06 0 29 0.0 0.0 0.0 0.0 0 khungtaskd +17:05:06 0 30 0.0 0.0 0.0 0.0 1 writeback +17:05:06 0 31 0.0 0.0 0.0 0.0 2 ksmd +17:05:06 0 32 0.0 0.0 0.0 0.0 2 khugepaged +17:05:06 0 33 0.0 0.0 0.0 0.0 2 crypto +17:05:06 0 34 0.0 0.0 0.0 0.0 2 kintegrityd +17:05:06 0 35 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 36 0.0 0.0 0.0 0.0 2 kblockd +17:05:06 0 37 0.0 0.0 0.0 0.0 2 ata_sff +17:05:06 0 38 0.0 0.0 0.0 0.0 2 md +17:05:06 0 39 0.0 0.0 0.0 0.0 3 devfreq_wq +17:05:06 0 3624 0.0 0.0 0.0 0.0 1 agetty +17:05:06 0 43 0.0 0.0 0.0 0.0 1 kswapd0 +17:05:06 0 44 0.0 0.0 0.0 0.0 2 vmstat +17:05:06 0 45 0.0 0.0 0.0 0.0 2 fsnotify_mark +17:05:06 0 46 0.0 0.0 0.0 0.0 0 ecryptfs-kthrea +17:05:06 1000 5681 0.0 0.0 0.0 0.0 1 evolution-sourc +17:05:06 0 5129 0.0 0.0 0.0 0.0 2 upowerd +17:05:06 1000 5176 0.0 0.0 0.0 0.0 1 systemd +17:05:06 1000 5178 0.0 0.0 0.0 0.0 0 (sd-pam +17:05:06 0 23100 0.0 0.0 0.0 0.0 0 kworker/0:0 +17:05:06 0 62 0.0 0.0 0.0 0.0 2 kthrotld +17:05:06 1000 5183 0.0 0.0 0.0 0.0 3 gnome-keyring-d +17:05:06 1000 5185 0.0 0.0 0.0 0.0 1 upstart +17:05:06 0 66 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 67 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 68 0.0 0.0 0.0 0.0 2 bioset +17:05:06 1000 5701 1.0 0.0 0.0 1.0 1 nautilus +17:05:06 0 70 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 71 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 72 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 73 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 74 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 75 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 76 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 77 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 78 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 79 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 80 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 81 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 82 0.0 0.0 0.0 0.0 2 bioset +17:05:06 0 83 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 84 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 85 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 86 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 87 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 88 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 89 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 90 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 605 0.0 0.0 0.0 0.0 3 wl_event_handle +17:05:06 0 95 0.0 0.0 0.0 0.0 2 ipv6_addrconf +17:05:06 1000 5734 0.0 0.0 0.0 0.0 1 artha +17:05:06 0 619 0.0 0.0 0.0 0.0 0 kvm-irqfd-clean +17:05:06 0 108 0.0 0.0 0.0 0.0 1 deferwq +17:05:06 0 109 0.0 0.0 0.0 0.0 1 charger_manager +17:05:06 1000 18263 0.0 0.0 0.0 0.0 1 slack +17:05:06 1000 18549 0.0 0.0 0.0 0.0 0 chrome +17:05:06 1000 5750 0.0 0.0 0.0 0.0 0 redshift +17:05:06 0 25535 0.0 0.0 0.0 0.0 3 kworker/3:0 +17:05:06 1000 18556 0.0 0.0 0.0 0.0 2 chrome +17:05:06 123 5761 0.0 0.0 0.0 0.0 2 geoclue +17:05:06 1000 5637 0.0 0.0 0.0 0.0 2 indicator-sessi +17:05:06 1000 11395 0.0 0.0 0.0 0.0 0 gvfsd-metadata +17:05:06 1000 5767 0.0 0.0 0.0 0.0 0 gvfs-udisks2-vo +17:05:06 1000 18568 0.0 0.0 0.0 0.0 0 chrome +17:05:06 1000 18569 1.0 0.0 0.0 1.0 0 chrome +17:05:06 1000 24343 0.0 0.0 0.0 0.0 2 atom +17:05:06 0 5774 0.0 0.0 0.0 0.0 0 udisksd +17:05:06 0 1679 0.0 0.0 0.0 0.0 0 kmemstick +17:05:06 999 1171 0.0 0.0 0.0 0.0 2 pmcd +17:05:06 0 660 0.0 0.0 0.0 0.0 0 jbd2/sda9-8 +17:05:06 0 661 0.0 0.0 0.0 0.0 0 ext4-rsv-conver +17:05:06 1000 1174 0.0 1.0 0.0 1.0 3 pmdaproc +17:05:06 0 151 0.0 0.0 0.0 0.0 0 kpsmoused +17:05:06 1000 5272 0.0 0.0 0.0 0.0 3 upstart-udev-br +17:05:06 0 1177 0.0 0.0 0.0 0.0 0 pmdalinux +17:05:06 124 1178 0.0 0.0 0.0 0.0 2 postgres +17:05:06 0 155 0.0 0.0 0.0 0.0 3 scsi_tmf_1 +17:05:06 0 156 0.0 0.0 0.0 0.0 1 scsi_eh_2 +17:05:06 0 157 0.0 0.0 0.0 0.0 3 scsi_tmf_2 +17:05:06 0 158 0.0 0.0 0.0 0.0 1 scsi_eh_3 +17:05:06 0 159 0.0 0.0 0.0 0.0 0 scsi_tmf_3 +17:05:06 0 160 0.0 0.0 0.0 0.0 0 scsi_eh_4 +17:05:06 0 161 0.0 0.0 0.0 0.0 0 scsi_tmf_4 +17:05:06 0 162 0.0 0.0 0.0 0.0 1 scsi_eh_5 +17:05:06 0 1051 0.0 0.0 0.0 0.0 2 lightdm +17:05:06 1000 19424 0.0 0.0 0.0 0.0 1 gnome-terminal- +17:05:06 1000 5286 0.0 0.0 0.0 0.0 3 window-stack-br +17:05:06 1000 5800 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:06 0 169 0.0 0.0 0.0 0.0 2 kfd_process_wq +17:05:06 0 172 0.0 0.0 0.0 0.0 1 ttm_swap +17:05:06 0 174 0.0 0.0 0.0 0.0 1 bioset +17:05:06 1000 18291 0.0 0.0 0.0 0.0 2 slack +17:05:06 1000 5274 0.0 0.0 0.0 0.0 3 dbus-daemon +17:05:06 0 23736 0.0 0.0 0.0 0.0 3 kworker/3:1 +17:05:06 1000 6329 0.0 0.0 0.0 0.0 2 update-notifier +17:05:06 1000 5818 0.0 0.0 0.0 0.0 0 gvfs-mtp-volume +17:05:06 0 5829 0.0 0.0 0.0 0.0 1 fwupd +17:05:06 1000 6855 0.0 0.0 0.0 0.0 0 deja-dup-monito +17:05:06 0 22728 0.0 0.0 0.0 0.0 0 kworker/u16:3 +17:05:06 1000 11327 0.0 0.0 0.0 0.0 3 gvfsd-dnssd +17:05:06 999 4810 0.0 0.0 0.0 0.0 2 pmlogger +17:05:06 1000 18465 0.0 0.0 0.0 0.0 0 chrome +17:05:06 113 5154 0.0 0.0 0.0 0.0 0 colord +17:05:06 0 24782 0.0 0.0 0.0 0.0 3 kworker/3:2 +17:05:06 0 461 0.0 0.0 0.0 0.0 2 edac-poller +17:05:06 1000 18641 0.0 0.0 0.0 0.0 1 chrome +17:05:06 1000 5842 0.0 0.0 0.0 0.0 3 gvfsd-trash +17:05:06 1000 5633 0.0 0.0 0.0 0.0 3 indicator-sound +17:05:06 122 4821 0.0 0.0 0.0 0.0 0 unbound +17:05:06 1000 5335 0.0 0.0 0.0 0.0 2 ibus-daemon +17:05:06 1000 24868 0.0 0.0 0.0 0.0 0 python +17:05:06 1000 21722 0.0 0.0 0.0 0.0 1 chrome +17:05:06 0 24783 0.0 0.0 0.0 0.0 0 kworker/u16:2 +17:05:06 1000 18420 0.0 0.0 0.0 0.0 1 cat +17:05:06 0 18062 0.0 0.0 0.0 0.0 2 dhclient +17:05:06 1000 5343 0.0 0.0 0.0 0.0 3 upstart-dbus-br +17:05:06 1000 6023 0.0 0.0 0.0 0.0 2 gconfd-2 +17:05:06 1000 5345 0.0 0.0 0.0 0.0 0 upstart-dbus-br +17:05:06 0 22757 0.0 0.0 0.0 0.0 1 kworker/1:0 +17:05:06 0 21457 0.0 0.0 0.0 0.0 2 kworker/2:2 +17:05:06 1000 5866 0.0 0.0 0.0 0.0 2 evolution-calen +17:05:06 1000 5671 0.0 0.0 0.0 0.0 3 indicator-appli +17:05:06 1000 5876 0.0 0.0 0.0 0.0 3 evolution-addre +17:05:06 1000 5878 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:06 1000 5367 0.0 0.0 0.0 0.0 0 gpg-agent +17:05:06 0 1031 0.0 0.0 0.0 0.0 0 polkitd +17:05:06 0 249 0.0 0.0 0.0 0.0 0 raid5wq +17:05:06 1000 8954 0.0 0.0 0.0 0.0 2 unity-scope-hom +17:05:06 1000 18421 0.0 0.0 0.0 0.0 1 cat +17:05:06 65534 5273 0.0 0.0 0.0 0.0 3 dnsmasq +17:05:06 1000 5375 0.0 0.0 0.0 0.0 3 gvfsd +17:05:06 1000 25344 0.0 0.0 0.0 0.0 1 bash +17:05:06 1000 5380 0.0 0.0 0.0 0.0 3 gvfsd-fuse +17:05:06 1000 5895 0.0 0.0 0.0 0.0 2 evolution-addre +17:05:06 1000 8969 0.0 0.0 0.0 0.0 3 unity-files-dae +17:05:06 1000 8971 0.0 0.0 0.0 0.0 3 unity-music-dae +17:05:06 100 780 0.0 0.0 0.0 0.0 3 systemd-timesyn +17:05:06 1000 5389 0.0 0.0 0.0 0.0 3 ibus-dconf +17:05:06 1000 5395 0.0 0.0 0.0 0.0 3 upstart-file-br +17:05:06 1000 5396 0.0 0.0 0.0 0.0 3 ibus-ui-gtk3 +17:05:06 1000 18503 0.0 0.0 0.0 0.0 2 chrome +17:05:06 1000 5398 0.0 0.0 0.0 0.0 1 ibus-x11 +17:05:06 0 279 0.0 0.0 0.0 0.0 0 bioset +17:05:06 1000 7130 0.0 0.0 0.0 0.0 0 notify-osd +17:05:06 1000 5806 0.0 0.0 0.0 0.0 1 gvfs-gphoto2-vo +17:05:06 1000 5789 0.0 0.0 0.0 0.0 2 gvfs-goa-volume +17:05:06 1000 18224 0.0 0.0 0.0 0.0 1 slack +17:05:06 0 17945 0.0 0.0 0.0 0.0 3 irq/30-mei_me +17:05:06 1000 5414 0.0 0.0 0.0 0.0 0 at-spi-bus-laun +17:05:06 1000 19642 0.0 0.0 0.0 0.0 3 atom +17:05:06 1000 5419 0.0 0.0 0.0 0.0 2 dbus-daemon +17:05:06 1000 18220 0.0 0.0 0.0 0.0 1 slack +17:05:06 1000 5421 0.0 0.0 0.0 0.0 2 at-spi2-registr +17:05:06 104 814 0.0 0.0 0.0 0.0 2 rsyslogd +17:05:06 106 815 0.0 0.0 0.0 0.0 1 dbus-daemon +17:05:06 0 304 0.0 0.0 0.0 0.0 1 kworker/1:1H +17:05:06 0 306 0.0 0.0 0.0 0.0 3 jbd2/sda8-8 +17:05:06 0 307 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:06 1000 5946 0.0 0.0 0.0 0.0 1 zeitgeist-datah +17:05:06 0 22751 0.0 0.0 0.0 0.0 2 kworker/u16:0 +17:05:06 1000 5441 0.0 0.0 0.0 0.0 0 unity-settings- +17:05:06 1000 5442 0.0 0.0 0.0 0.0 2 bamfdaemon +17:05:06 0 22852 0.0 0.0 0.0 0.0 3 kworker/u16:1 +17:05:06 1000 5957 0.0 0.0 0.0 0.0 0 zeitgeist-daemo +17:05:06 1000 18253 0.0 0.0 0.0 0.0 0 slack +17:05:06 0 4937 0.0 0.0 0.0 0.0 2 apache2 +17:05:06 0 25419 0.0 0.0 0.0 0.0 2 kworker/2:1 +17:05:06 33 4940 0.0 0.0 0.0 0.0 0 apache2 +17:05:06 33 4941 0.0 0.0 0.0 0.0 3 apache2 +17:05:06 1000 5456 1.0 0.0 0.0 1.0 2 hud-service +17:05:06 1000 5459 0.0 0.0 0.0 0.0 2 gnome-session-b +17:05:06 1000 5461 0.0 0.0 0.0 0.0 2 unity-panel-ser +17:05:06 1000 5462 0.0 1.0 0.0 1.0 2 compiz +17:05:06 0 855 0.0 0.0 0.0 0.0 2 NetworkManager +17:05:06 124 1369 0.0 0.0 0.0 0.0 2 postgres +17:05:06 124 1370 0.0 0.0 0.0 0.0 0 postgres +17:05:06 124 1371 0.0 0.0 0.0 0.0 0 postgres +17:05:06 124 1372 0.0 0.0 0.0 0.0 2 postgres +17:05:06 124 1373 0.0 0.0 0.0 0.0 0 postgres +17:05:06 0 862 0.0 0.0 0.0 0.0 1 cron +17:05:06 0 351 0.0 0.0 0.0 0.0 0 kauditd +17:05:06 1000 18428 0.0 0.0 0.0 0.0 2 chrome +17:05:06 0 866 0.0 0.0 0.0 0.0 1 ModemManager +17:05:06 1000 19618 0.0 0.0 0.0 0.0 0 atom +17:05:06 0 361 0.0 0.0 0.0 0.0 3 systemd-journal +17:05:06 1000 18459 1.0 0.0 0.0 1.0 0 chrome +17:05:06 0 1683 0.0 0.0 0.0 0.0 3 rtsx_usb_ms_2 +17:05:06 0 372 0.0 0.0 0.0 0.0 1 lvmetad +17:05:06 0 886 0.0 0.0 0.0 0.0 1 acpid +17:05:06 0 888 0.0 0.0 0.0 0.0 2 systemd-logind +17:05:06 0 63 0.0 0.0 0.0 0.0 2 acpi_thermal_pm +17:05:06 0 892 0.0 0.0 0.0 0.0 0 atd +17:05:06 0 895 0.0 0.0 0.0 0.0 3 accounts-daemon +17:05:06 0 897 0.0 0.0 0.0 0.0 3 thermald +17:05:06 0 386 0.0 0.0 0.0 0.0 1 systemd-udevd +17:05:06 1000 18411 4.0 0.0 0.0 4.0 1 chrome +17:05:06 0 662 0.0 0.0 0.0 0.0 1 jbd2/sda10-8 +17:05:06 1000 5953 0.0 0.0 0.0 0.0 1 sh +17:05:06 109 904 0.0 0.0 0.0 0.0 2 whoopsie +17:05:06 0 1087 0.0 0.0 0.0 0.0 1 Xorg +17:05:06 0 663 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:06 1000 18498 0.0 0.0 0.0 0.0 0 chrome +17:05:06 111 912 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:06 0 401 0.0 0.0 0.0 0.0 0 kworker/0:1H +17:05:06 0 915 0.0 0.0 0.0 0.0 3 snapd +17:05:06 0 24981 0.0 0.0 0.0 0.0 0 kworker/0:2 +17:05:06 1000 18508 0.0 0.0 0.0 0.0 2 chrome +17:05:06 0 153 0.0 0.0 0.0 0.0 3 scsi_tmf_0 +17:05:06 0 154 0.0 0.0 0.0 0.0 1 scsi_eh_1 +17:05:06 1000 19653 0.0 0.0 0.0 0.0 0 atom +17:05:06 0 1173 0.0 0.0 0.0 0.0 1 pmdaroot +17:05:06 1000 18337 0.0 0.0 0.0 0.0 3 slack +17:05:06 999 1179 0.0 0.0 0.0 0.0 3 pmdasimple +17:05:06 1000 5702 0.0 0.0 0.0 0.0 3 unity-fallback- +17:05:06 1000 5964 0.0 0.0 0.0 0.0 2 zeitgeist-fts +17:05:06 1000 18495 0.0 0.0 0.0 0.0 0 chrome +17:05:06 0 24411 0.0 0.0 0.0 0.0 1 kworker/1:1 +17:05:06 1000 5703 0.0 0.0 0.0 0.0 3 polkit-gnome-au +17:05:06 0 5039 0.0 0.0 0.0 0.0 0 lightdm +17:05:06 1000 11289 0.0 0.0 0.0 0.0 0 gvfsd-network +17:05:06 1000 19614 0.0 0.0 0.0 0.0 0 atom +17:05:06 0 25460 0.0 0.0 0.0 0.0 1 kworker/1:2 +17:05:06 1000 5794 0.0 0.0 0.0 0.0 2 gvfs-afc-volume +17:05:06 1000 5620 0.0 0.0 0.0 0.0 3 indicator-messa +17:05:06 1000 23704 0.0 0.0 0.0 0.0 1 gedit +17:05:06 1000 5621 0.0 0.0 0.0 0.0 0 indicator-bluet +17:05:06 1000 18581 0.0 0.0 0.0 0.0 2 chrome +17:05:06 0 24005 0.0 0.0 0.0 0.0 0 kworker/0:1 +17:05:06 1000 5708 0.0 0.0 0.0 0.0 3 nm-applet +17:05:06 0 24523 0.0 0.0 0.0 0.0 1 bioset +17:05:06 0 1186 0.0 0.0 0.0 0.0 0 wpa_supplicant +17:05:06 1000 5709 0.0 0.0 0.0 0.0 3 gnome-software +17:05:06 118 5072 0.0 0.0 0.0 0.0 1 rtkit-daemon +17:05:06 0 465 0.0 0.0 0.0 0.0 2 kworker/2:1H +17:05:06 0 163 0.0 0.0 0.0 0.0 0 scsi_tmf_5 +17:05:06 0 468 0.0 0.0 0.0 0.0 3 kworker/3:1H +17:05:06 1000 22777 7.1 1.0 0.0 8.1 1 chrome +17:05:06 0 152 0.0 0.0 0.0 0.0 1 scsi_eh_0 +17:05:06 0 1175 0.0 0.0 0.0 0.0 1 pmdaxfs +17:05:06 1000 5597 0.0 0.0 0.0 0.0 1 ibus-engine-sim +17:05:06 0 24229 0.0 0.0 0.0 0.0 2 kworker/2:0 +17:05:06 1000 5600 0.0 0.0 0.0 0.0 0 syndaemon +17:05:06 1000 5604 1.9 0.0 0.0 1.9 1 pulseaudio +17:05:06 1000 19431 0.0 0.0 0.0 0.0 3 bash +17:05:06 1000 5608 0.0 0.0 0.0 0.0 2 dconf-service +17:05:06 1000 5628 0.0 0.0 0.0 0.0 1 indicator-datet +17:05:06 111 1002 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:06 0 1003 0.0 0.0 0.0 0.0 3 cups-browsed +17:05:06 1000 25541 0.0 0.0 0.0 0.0 3 pmlogger +17:05:06 1000 8967 0.0 0.0 0.0 0.0 0 unity-scope-loa +17:05:06 1000 19539 0.0 0.0 0.0 0.0 3 chrome +17:05:06 0 1012 0.0 0.0 0.0 0.0 0 irqbalance +17:05:06 0 1013 0.0 0.0 0.0 0.0 3 mdadm +17:05:06 1000 5623 0.0 0.0 0.0 0.0 2 indicator-power +17:05:06 1000 18424 0.0 0.0 0.0 0.0 1 chrome +17:05:06 1000 18425 0.0 0.0 0.0 0.0 0 nacl_helper +17:05:06 999 1176 0.0 0.0 0.0 0.0 2 pmdasample +17:05:06 0 508 0.0 0.0 0.0 0.0 1 cfg80211 +17:05:06 1000 18583 0.0 0.0 0.0 0.0 1 chrome + +=== pcp-pidstat with user names +Linux ram-Lenovo 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 (4 CPU) +Timestamp UName PID usr system guest %CPU CPU Command +17:05:04 ram 5632 ? ? ? ? 1 indicator-keybo +17:05:04 root 1 ? ? ? ? 2 systemd +17:05:04 root 2 ? ? ? ? 2 kthreadd +17:05:04 root 3 ? ? ? ? 0 ksoftirqd/0 +17:05:04 root 5 ? ? ? ? 0 kworker/0:0H +17:05:04 root 7 ? ? ? ? 2 rcu_sched +17:05:04 root 8 ? ? ? ? 0 rcu_bh +17:05:04 root 9 ? ? ? ? 0 migration/0 +17:05:04 root 10 ? ? ? ? 0 watchdog/0 +17:05:04 root 11 ? ? ? ? 1 watchdog/1 +17:05:04 root 12 ? ? ? ? 1 migration/1 +17:05:04 root 13 ? ? ? ? 1 ksoftirqd/1 +17:05:04 root 15 ? ? ? ? 1 kworker/1:0H +17:05:04 root 16 ? ? ? ? 2 watchdog/2 +17:05:04 root 17 ? ? ? ? 2 migration/2 +17:05:04 root 18 ? ? ? ? 2 ksoftirqd/2 +17:05:04 ram 5635 ? ? ? ? 1 indicator-print +17:05:04 root 20 ? ? ? ? 2 kworker/2:0H +17:05:04 root 21 ? ? ? ? 3 watchdog/3 +17:05:04 root 22 ? ? ? ? 3 migration/3 +17:05:04 root 23 ? ? ? ? 3 ksoftirqd/3 +17:05:04 root 25 ? ? ? ? 3 kworker/3:0H +17:05:04 root 26 ? ? ? ? 0 kdevtmpfs +17:05:04 root 27 ? ? ? ? 1 netns +17:05:04 root 28 ? ? ? ? 1 perf +17:05:04 root 29 ? ? ? ? 0 khungtaskd +17:05:04 root 30 ? ? ? ? 1 writeback +17:05:04 root 31 ? ? ? ? 2 ksmd +17:05:04 root 32 ? ? ? ? 1 khugepaged +17:05:04 root 33 ? ? ? ? 2 crypto +17:05:04 root 34 ? ? ? ? 2 kintegrityd +17:05:04 root 35 ? ? ? ? 2 bioset +17:05:04 root 36 ? ? ? ? 2 kblockd +17:05:04 root 37 ? ? ? ? 2 ata_sff +17:05:04 root 38 ? ? ? ? 2 md +17:05:04 root 39 ? ? ? ? 3 devfreq_wq +17:05:04 root 3624 ? ? ? ? 1 agetty +17:05:04 root 43 ? ? ? ? 1 kswapd0 +17:05:04 root 44 ? ? ? ? 2 vmstat +17:05:04 root 45 ? ? ? ? 2 fsnotify_mark +17:05:04 root 46 ? ? ? ? 0 ecryptfs-kthrea +17:05:04 ram 5681 ? ? ? ? 1 evolution-sourc +17:05:04 root 5129 ? ? ? ? 2 upowerd +17:05:04 ram 5176 ? ? ? ? 1 systemd +17:05:04 ram 5178 ? ? ? ? 0 (sd-pam +17:05:04 root 23100 ? ? ? ? 0 kworker/0:0 +17:05:04 root 62 ? ? ? ? 2 kthrotld +17:05:04 ram 5183 ? ? ? ? 3 gnome-keyring-d +17:05:04 ram 5185 ? ? ? ? 1 upstart +17:05:04 root 66 ? ? ? ? 2 bioset +17:05:04 root 67 ? ? ? ? 2 bioset +17:05:04 root 68 ? ? ? ? 2 bioset +17:05:04 ram 5701 ? ? ? ? 0 nautilus +17:05:04 root 70 ? ? ? ? 2 bioset +17:05:04 root 71 ? ? ? ? 2 bioset +17:05:04 root 72 ? ? ? ? 2 bioset +17:05:04 root 73 ? ? ? ? 2 bioset +17:05:04 root 74 ? ? ? ? 2 bioset +17:05:04 root 75 ? ? ? ? 2 bioset +17:05:04 root 76 ? ? ? ? 2 bioset +17:05:04 root 77 ? ? ? ? 2 bioset +17:05:04 root 78 ? ? ? ? 2 bioset +17:05:04 root 79 ? ? ? ? 2 bioset +17:05:04 root 80 ? ? ? ? 2 bioset +17:05:04 root 81 ? ? ? ? 2 bioset +17:05:04 root 82 ? ? ? ? 2 bioset +17:05:04 root 83 ? ? ? ? 1 bioset +17:05:04 root 84 ? ? ? ? 1 bioset +17:05:04 root 85 ? ? ? ? 1 bioset +17:05:04 root 86 ? ? ? ? 1 bioset +17:05:04 root 87 ? ? ? ? 1 bioset +17:05:04 root 88 ? ? ? ? 1 bioset +17:05:04 root 89 ? ? ? ? 1 bioset +17:05:04 root 90 ? ? ? ? 1 bioset +17:05:04 root 605 ? ? ? ? 3 wl_event_handle +17:05:04 root 95 ? ? ? ? 2 ipv6_addrconf +17:05:04 ram 5734 ? ? ? ? 1 artha +17:05:04 root 619 ? ? ? ? 0 kvm-irqfd-clean +17:05:04 root 108 ? ? ? ? 1 deferwq +17:05:04 root 109 ? ? ? ? 1 charger_manager +17:05:04 ram 18263 ? ? ? ? 1 slack +17:05:04 ram 18549 ? ? ? ? 0 chrome +17:05:04 ram 5750 ? ? ? ? 0 redshift +17:05:04 root 25535 ? ? ? ? 3 kworker/3:0 +17:05:04 ram 18556 ? ? ? ? 2 chrome +17:05:04 geoclue 5761 ? ? ? ? 2 geoclue +17:05:04 ram 5637 ? ? ? ? 2 indicator-sessi +17:05:04 ram 11395 ? ? ? ? 0 gvfsd-metadata +17:05:04 ram 5767 ? ? ? ? 0 gvfs-udisks2-vo +17:05:04 ram 18568 ? ? ? ? 0 chrome +17:05:04 ram 18569 ? ? ? ? 0 chrome +17:05:04 ram 24343 ? ? ? ? 2 atom +17:05:04 root 5774 ? ? ? ? 0 udisksd +17:05:04 root 1679 ? ? ? ? 0 kmemstick +17:05:04 pcp 1171 ? ? ? ? 3 pmcd +17:05:04 root 660 ? ? ? ? 0 jbd2/sda9-8 +17:05:04 root 661 ? ? ? ? 0 ext4-rsv-conver +17:05:04 ram 1174 ? ? ? ? 3 pmdaproc +17:05:04 root 151 ? ? ? ? 0 kpsmoused +17:05:04 ram 5272 ? ? ? ? 3 upstart-udev-br +17:05:04 root 1177 ? ? ? ? 0 pmdalinux +17:05:04 postgres 1178 ? ? ? ? 2 postgres +17:05:04 root 155 ? ? ? ? 3 scsi_tmf_1 +17:05:04 root 156 ? ? ? ? 1 scsi_eh_2 +17:05:04 root 157 ? ? ? ? 3 scsi_tmf_2 +17:05:04 root 158 ? ? ? ? 1 scsi_eh_3 +17:05:04 root 159 ? ? ? ? 0 scsi_tmf_3 +17:05:04 root 160 ? ? ? ? 0 scsi_eh_4 +17:05:04 root 161 ? ? ? ? 0 scsi_tmf_4 +17:05:04 root 162 ? ? ? ? 1 scsi_eh_5 +17:05:04 root 1051 ? ? ? ? 2 lightdm +17:05:04 ram 19424 ? ? ? ? 1 gnome-terminal- +17:05:04 ram 5286 ? ? ? ? 3 window-stack-br +17:05:04 ram 5800 ? ? ? ? 3 evolution-calen +17:05:04 root 169 ? ? ? ? 2 kfd_process_wq +17:05:04 root 172 ? ? ? ? 1 ttm_swap +17:05:04 root 174 ? ? ? ? 1 bioset +17:05:04 ram 18291 ? ? ? ? 2 slack +17:05:04 ram 5274 ? ? ? ? 3 dbus-daemon +17:05:04 root 23736 ? ? ? ? 3 kworker/3:1 +17:05:04 ram 6329 ? ? ? ? 2 update-notifier +17:05:04 ram 5818 ? ? ? ? 0 gvfs-mtp-volume +17:05:04 root 5829 ? ? ? ? 1 fwupd +17:05:04 ram 6855 ? ? ? ? 0 deja-dup-monito +17:05:04 root 22728 ? ? ? ? 0 kworker/u16:3 +17:05:04 ram 11327 ? ? ? ? 3 gvfsd-dnssd +17:05:04 pcp 4810 ? ? ? ? 2 pmlogger +17:05:04 ram 18465 ? ? ? ? 0 chrome +17:05:04 colord 5154 ? ? ? ? 0 colord +17:05:04 root 24782 ? ? ? ? 3 kworker/3:2 +17:05:04 root 461 ? ? ? ? 2 edac-poller +17:05:04 ram 18641 ? ? ? ? 3 chrome +17:05:04 ram 5842 ? ? ? ? 3 gvfsd-trash +17:05:04 ram 5633 ? ? ? ? 3 indicator-sound +17:05:04 unbound 4821 ? ? ? ? 0 unbound +17:05:04 ram 5335 ? ? ? ? 2 ibus-daemon +17:05:04 ram 24868 ? ? ? ? 0 python +17:05:04 ram 21722 ? ? ? ? 1 chrome +17:05:04 root 24783 ? ? ? ? 0 kworker/u16:2 +17:05:04 ram 18420 ? ? ? ? 1 cat +17:05:04 root 18062 ? ? ? ? 2 dhclient +17:05:04 ram 5343 ? ? ? ? 3 upstart-dbus-br +17:05:04 ram 6023 ? ? ? ? 2 gconfd-2 +17:05:04 ram 5345 ? ? ? ? 0 upstart-dbus-br +17:05:04 root 22757 ? ? ? ? 1 kworker/1:0 +17:05:04 root 21457 ? ? ? ? 2 kworker/2:2 +17:05:04 ram 5866 ? ? ? ? 2 evolution-calen +17:05:04 ram 5671 ? ? ? ? 3 indicator-appli +17:05:04 ram 5876 ? ? ? ? 3 evolution-addre +17:05:04 ram 5878 ? ? ? ? 3 evolution-calen +17:05:04 ram 5367 ? ? ? ? 0 gpg-agent +17:05:04 root 1031 ? ? ? ? 0 polkitd +17:05:04 root 249 ? ? ? ? 0 raid5wq +17:05:04 ram 8954 ? ? ? ? 2 unity-scope-hom +17:05:04 ram 18421 ? ? ? ? 1 cat +17:05:04 nobody 5273 ? ? ? ? 3 dnsmasq +17:05:04 ram 5375 ? ? ? ? 3 gvfsd +17:05:04 ram 25344 ? ? ? ? 1 bash +17:05:04 ram 5380 ? ? ? ? 3 gvfsd-fuse +17:05:04 ram 5895 ? ? ? ? 2 evolution-addre +17:05:04 ram 8969 ? ? ? ? 3 unity-files-dae +17:05:04 ram 8971 ? ? ? ? 3 unity-music-dae +17:05:04 systemd-timesync 780 ? ? ? ? 3 systemd-timesyn +17:05:04 ram 5389 ? ? ? ? 3 ibus-dconf +17:05:04 ram 5395 ? ? ? ? 3 upstart-file-br +17:05:04 ram 5396 ? ? ? ? 3 ibus-ui-gtk3 +17:05:04 ram 18503 ? ? ? ? 1 chrome +17:05:04 ram 5398 ? ? ? ? 1 ibus-x11 +17:05:04 root 279 ? ? ? ? 0 bioset +17:05:04 ram 7130 ? ? ? ? 0 notify-osd +17:05:04 ram 5806 ? ? ? ? 1 gvfs-gphoto2-vo +17:05:04 ram 5789 ? ? ? ? 2 gvfs-goa-volume +17:05:04 ram 18224 ? ? ? ? 1 slack +17:05:04 root 17945 ? ? ? ? 3 irq/30-mei_me +17:05:04 ram 5414 ? ? ? ? 0 at-spi-bus-laun +17:05:04 ram 19642 ? ? ? ? 3 atom +17:05:04 ram 5419 ? ? ? ? 2 dbus-daemon +17:05:04 ram 18220 ? ? ? ? 1 slack +17:05:04 ram 5421 ? ? ? ? 2 at-spi2-registr +17:05:04 syslog 814 ? ? ? ? 2 rsyslogd +17:05:04 messagebus 815 ? ? ? ? 1 dbus-daemon +17:05:04 root 304 ? ? ? ? 1 kworker/1:1H +17:05:04 root 306 ? ? ? ? 3 jbd2/sda8-8 +17:05:04 root 307 ? ? ? ? 1 ext4-rsv-conver +17:05:04 ram 5946 ? ? ? ? 1 zeitgeist-datah +17:05:04 root 22751 ? ? ? ? 2 kworker/u16:0 +17:05:04 ram 5441 ? ? ? ? 0 unity-settings- +17:05:04 ram 5442 ? ? ? ? 2 bamfdaemon +17:05:04 root 22852 ? ? ? ? 0 kworker/u16:1 +17:05:04 ram 5957 ? ? ? ? 0 zeitgeist-daemo +17:05:04 ram 18253 ? ? ? ? 0 slack +17:05:04 root 4937 ? ? ? ? 2 apache2 +17:05:04 root 25419 ? ? ? ? 2 kworker/2:1 +17:05:04 www-data 4940 ? ? ? ? 0 apache2 +17:05:04 www-data 4941 ? ? ? ? 3 apache2 +17:05:04 ram 5456 ? ? ? ? 2 hud-service +17:05:04 ram 5459 ? ? ? ? 2 gnome-session-b +17:05:04 ram 5461 ? ? ? ? 2 unity-panel-ser +17:05:04 ram 5462 ? ? ? ? 0 compiz +17:05:04 root 855 ? ? ? ? 2 NetworkManager +17:05:04 postgres 1369 ? ? ? ? 2 postgres +17:05:04 postgres 1370 ? ? ? ? 0 postgres +17:05:04 postgres 1371 ? ? ? ? 0 postgres +17:05:04 postgres 1372 ? ? ? ? 2 postgres +17:05:04 postgres 1373 ? ? ? ? 0 postgres +17:05:04 root 862 ? ? ? ? 1 cron +17:05:04 root 351 ? ? ? ? 0 kauditd +17:05:04 ram 18428 ? ? ? ? 2 chrome +17:05:04 root 866 ? ? ? ? 1 ModemManager +17:05:04 ram 19618 ? ? ? ? 0 atom +17:05:04 root 361 ? ? ? ? 3 systemd-journal +17:05:04 ram 18459 ? ? ? ? 0 chrome +17:05:04 root 1683 ? ? ? ? 3 rtsx_usb_ms_2 +17:05:04 root 372 ? ? ? ? 1 lvmetad +17:05:04 root 886 ? ? ? ? 1 acpid +17:05:04 root 888 ? ? ? ? 2 systemd-logind +17:05:04 root 63 ? ? ? ? 2 acpi_thermal_pm +17:05:04 root 892 ? ? ? ? 0 atd +17:05:04 root 895 ? ? ? ? 3 accounts-daemon +17:05:04 root 897 ? ? ? ? 3 thermald +17:05:04 root 386 ? ? ? ? 1 systemd-udevd +17:05:04 ram 18411 ? ? ? ? 2 chrome +17:05:04 root 662 ? ? ? ? 3 jbd2/sda10-8 +17:05:04 ram 5953 ? ? ? ? 1 sh +17:05:04 whoopsie 904 ? ? ? ? 2 whoopsie +17:05:04 root 1087 ? ? ? ? 1 Xorg +17:05:04 root 663 ? ? ? ? 1 ext4-rsv-conver +17:05:04 ram 18498 ? ? ? ? 1 chrome +17:05:04 avahi 912 ? ? ? ? 3 avahi-daemon +17:05:04 root 401 ? ? ? ? 0 kworker/0:1H +17:05:04 root 915 ? ? ? ? 3 snapd +17:05:04 root 24981 ? ? ? ? 0 kworker/0:2 +17:05:04 ram 18508 ? ? ? ? 2 chrome +17:05:04 root 153 ? ? ? ? 3 scsi_tmf_0 +17:05:04 root 154 ? ? ? ? 1 scsi_eh_1 +17:05:04 ram 19653 ? ? ? ? 0 atom +17:05:04 root 1173 ? ? ? ? 1 pmdaroot +17:05:04 ram 18337 ? ? ? ? 0 slack +17:05:04 pcp 1179 ? ? ? ? 3 pmdasimple +17:05:04 ram 5702 ? ? ? ? 3 unity-fallback- +17:05:04 ram 5964 ? ? ? ? 2 zeitgeist-fts +17:05:04 ram 18495 ? ? ? ? 0 chrome +17:05:04 root 24411 ? ? ? ? 1 kworker/1:1 +17:05:04 ram 5703 ? ? ? ? 3 polkit-gnome-au +17:05:04 root 5039 ? ? ? ? 0 lightdm +17:05:04 ram 11289 ? ? ? ? 0 gvfsd-network +17:05:04 ram 19614 ? ? ? ? 0 atom +17:05:04 root 25460 ? ? ? ? 1 kworker/1:2 +17:05:04 ram 5794 ? ? ? ? 2 gvfs-afc-volume +17:05:04 ram 5620 ? ? ? ? 3 indicator-messa +17:05:04 ram 23704 ? ? ? ? 1 gedit +17:05:04 ram 5621 ? ? ? ? 0 indicator-bluet +17:05:04 ram 18581 ? ? ? ? 2 chrome +17:05:04 root 24005 ? ? ? ? 0 kworker/0:1 +17:05:04 ram 5708 ? ? ? ? 3 nm-applet +17:05:04 root 24523 ? ? ? ? 1 bioset +17:05:04 root 1186 ? ? ? ? 0 wpa_supplicant +17:05:04 ram 5709 ? ? ? ? 3 gnome-software +17:05:04 rtkit 5072 ? ? ? ? 1 rtkit-daemon +17:05:04 root 465 ? ? ? ? 2 kworker/2:1H +17:05:04 root 163 ? ? ? ? 0 scsi_tmf_5 +17:05:04 root 468 ? ? ? ? 3 kworker/3:1H +17:05:04 ram 22777 ? ? ? ? 0 chrome +17:05:04 root 152 ? ? ? ? 1 scsi_eh_0 +17:05:04 root 1175 ? ? ? ? 1 pmdaxfs +17:05:04 ram 5597 ? ? ? ? 1 ibus-engine-sim +17:05:04 root 24229 ? ? ? ? 2 kworker/2:0 +17:05:04 ram 5600 ? ? ? ? 0 syndaemon +17:05:04 ram 5604 ? ? ? ? 0 pulseaudio +17:05:04 ram 19431 ? ? ? ? 3 bash +17:05:04 ram 5608 ? ? ? ? 2 dconf-service +17:05:04 ram 5628 ? ? ? ? 1 indicator-datet +17:05:04 avahi 1002 ? ? ? ? 3 avahi-daemon +17:05:04 root 1003 ? ? ? ? 3 cups-browsed +17:05:04 ram 25541 ? ? ? ? 0 pmlogger +17:05:04 ram 8967 ? ? ? ? 0 unity-scope-loa +17:05:04 ram 19539 ? ? ? ? 3 chrome +17:05:04 root 1012 ? ? ? ? 0 irqbalance +17:05:04 root 1013 ? ? ? ? 3 mdadm +17:05:04 ram 5623 ? ? ? ? 2 indicator-power +17:05:04 ram 18424 ? ? ? ? 1 chrome +17:05:04 ram 18425 ? ? ? ? 0 nacl_helper +17:05:04 pcp 1176 ? ? ? ? 2 pmdasample +17:05:04 root 508 ? ? ? ? 1 cfg80211 +17:05:04 ram 18583 ? ? ? ? 1 chrome +Timestamp UName PID usr system guest %CPU CPU Command +17:05:05 ram 5632 0.0 0.0 0.0 0.0 1 indicator-keybo +17:05:05 root 1 0.0 0.0 0.0 0.0 2 systemd +17:05:05 root 2 0.0 0.0 0.0 0.0 2 kthreadd +17:05:05 root 3 0.0 0.0 0.0 0.0 0 ksoftirqd/0 +17:05:05 root 5 0.0 0.0 0.0 0.0 0 kworker/0:0H +17:05:05 root 7 0.0 0.0 0.0 0.0 1 rcu_sched +17:05:05 root 8 0.0 0.0 0.0 0.0 0 rcu_bh +17:05:05 root 9 0.0 0.0 0.0 0.0 0 migration/0 +17:05:05 root 10 0.0 0.0 0.0 0.0 0 watchdog/0 +17:05:05 root 11 0.0 0.0 0.0 0.0 1 watchdog/1 +17:05:05 root 12 0.0 0.0 0.0 0.0 1 migration/1 +17:05:05 root 13 0.0 0.0 0.0 0.0 1 ksoftirqd/1 +17:05:05 root 15 0.0 0.0 0.0 0.0 1 kworker/1:0H +17:05:05 root 16 0.0 0.0 0.0 0.0 2 watchdog/2 +17:05:05 root 17 0.0 0.0 0.0 0.0 2 migration/2 +17:05:05 root 18 0.0 0.0 0.0 0.0 2 ksoftirqd/2 +17:05:05 ram 5635 0.0 0.0 0.0 0.0 1 indicator-print +17:05:05 root 20 0.0 0.0 0.0 0.0 2 kworker/2:0H +17:05:05 root 21 0.0 0.0 0.0 0.0 3 watchdog/3 +17:05:05 root 22 0.0 0.0 0.0 0.0 3 migration/3 +17:05:05 root 23 0.0 0.0 0.0 0.0 3 ksoftirqd/3 +17:05:05 root 25 0.0 0.0 0.0 0.0 3 kworker/3:0H +17:05:05 root 26 0.0 0.0 0.0 0.0 0 kdevtmpfs +17:05:05 root 27 0.0 0.0 0.0 0.0 1 netns +17:05:05 root 28 0.0 0.0 0.0 0.0 1 perf +17:05:05 root 29 0.0 0.0 0.0 0.0 0 khungtaskd +17:05:05 root 30 0.0 0.0 0.0 0.0 1 writeback +17:05:05 root 31 0.0 0.0 0.0 0.0 2 ksmd +17:05:05 root 32 0.0 0.0 0.0 0.0 2 khugepaged +17:05:05 root 33 0.0 0.0 0.0 0.0 2 crypto +17:05:05 root 34 0.0 0.0 0.0 0.0 2 kintegrityd +17:05:05 root 35 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 36 0.0 0.0 0.0 0.0 2 kblockd +17:05:05 root 37 0.0 0.0 0.0 0.0 2 ata_sff +17:05:05 root 38 0.0 0.0 0.0 0.0 2 md +17:05:05 root 39 0.0 0.0 0.0 0.0 3 devfreq_wq +17:05:05 root 3624 0.0 0.0 0.0 0.0 1 agetty +17:05:05 root 43 0.0 0.0 0.0 0.0 1 kswapd0 +17:05:05 root 44 0.0 0.0 0.0 0.0 2 vmstat +17:05:05 root 45 0.0 0.0 0.0 0.0 2 fsnotify_mark +17:05:05 root 46 0.0 0.0 0.0 0.0 0 ecryptfs-kthrea +17:05:05 ram 5681 0.0 0.0 0.0 0.0 1 evolution-sourc +17:05:05 root 5129 0.0 0.0 0.0 0.0 2 upowerd +17:05:05 ram 5176 0.0 0.0 0.0 0.0 1 systemd +17:05:05 ram 5178 0.0 0.0 0.0 0.0 0 (sd-pam +17:05:05 root 23100 0.0 0.0 0.0 0.0 0 kworker/0:0 +17:05:05 root 62 0.0 0.0 0.0 0.0 2 kthrotld +17:05:05 ram 5183 0.0 0.0 0.0 0.0 3 gnome-keyring-d +17:05:05 ram 5185 0.0 0.0 0.0 0.0 1 upstart +17:05:05 root 66 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 67 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 68 0.0 0.0 0.0 0.0 2 bioset +17:05:05 ram 5701 0.0 0.0 0.0 0.0 1 nautilus +17:05:05 root 70 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 71 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 72 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 73 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 74 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 75 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 76 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 77 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 78 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 79 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 80 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 81 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 82 0.0 0.0 0.0 0.0 2 bioset +17:05:05 root 83 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 84 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 85 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 86 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 87 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 88 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 89 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 90 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 605 0.0 0.0 0.0 0.0 3 wl_event_handle +17:05:05 root 95 0.0 0.0 0.0 0.0 2 ipv6_addrconf +17:05:05 ram 5734 0.0 0.0 0.0 0.0 1 artha +17:05:05 root 619 0.0 0.0 0.0 0.0 0 kvm-irqfd-clean +17:05:05 root 108 0.0 0.0 0.0 0.0 1 deferwq +17:05:05 root 109 0.0 0.0 0.0 0.0 1 charger_manager +17:05:05 ram 18263 0.0 0.0 0.0 0.0 1 slack +17:05:05 ram 18549 0.0 0.0 0.0 0.0 0 chrome +17:05:05 ram 5750 0.0 0.0 0.0 0.0 0 redshift +17:05:05 root 25535 0.0 0.0 0.0 0.0 3 kworker/3:0 +17:05:05 ram 18556 0.0 0.0 0.0 0.0 2 chrome +17:05:05 geoclue 5761 0.0 0.0 0.0 0.0 2 geoclue +17:05:05 ram 5637 0.0 0.0 0.0 0.0 2 indicator-sessi +17:05:05 ram 11395 0.0 0.0 0.0 0.0 0 gvfsd-metadata +17:05:05 ram 5767 0.0 0.0 0.0 0.0 0 gvfs-udisks2-vo +17:05:05 ram 18568 0.0 0.0 0.0 0.0 0 chrome +17:05:05 ram 18569 0.0 0.0 0.0 0.0 0 chrome +17:05:05 ram 24343 0.0 0.0 0.0 0.0 2 atom +17:05:05 root 5774 0.0 0.0 0.0 0.0 0 udisksd +17:05:05 root 1679 0.0 0.0 0.0 0.0 0 kmemstick +17:05:05 pcp 1171 0.0 0.0 0.0 0.0 2 pmcd +17:05:05 root 660 0.0 0.0 0.0 0.0 0 jbd2/sda9-8 +17:05:05 root 661 0.0 0.0 0.0 0.0 0 ext4-rsv-conver +17:05:05 ram 1174 1.0 1.0 0.0 2.0 3 pmdaproc +17:05:05 root 151 0.0 0.0 0.0 0.0 0 kpsmoused +17:05:05 ram 5272 0.0 0.0 0.0 0.0 3 upstart-udev-br +17:05:05 root 1177 0.0 0.0 0.0 0.0 0 pmdalinux +17:05:05 postgres 1178 0.0 0.0 0.0 0.0 2 postgres +17:05:05 root 155 0.0 0.0 0.0 0.0 3 scsi_tmf_1 +17:05:05 root 156 0.0 0.0 0.0 0.0 1 scsi_eh_2 +17:05:05 root 157 0.0 0.0 0.0 0.0 3 scsi_tmf_2 +17:05:05 root 158 0.0 0.0 0.0 0.0 1 scsi_eh_3 +17:05:05 root 159 0.0 0.0 0.0 0.0 0 scsi_tmf_3 +17:05:05 root 160 0.0 0.0 0.0 0.0 0 scsi_eh_4 +17:05:05 root 161 0.0 0.0 0.0 0.0 0 scsi_tmf_4 +17:05:05 root 162 0.0 0.0 0.0 0.0 1 scsi_eh_5 +17:05:05 root 1051 0.0 0.0 0.0 0.0 2 lightdm +17:05:05 ram 19424 0.0 0.0 0.0 0.0 1 gnome-terminal- +17:05:05 ram 5286 0.0 0.0 0.0 0.0 3 window-stack-br +17:05:05 ram 5800 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:05 root 169 0.0 0.0 0.0 0.0 2 kfd_process_wq +17:05:05 root 172 0.0 0.0 0.0 0.0 1 ttm_swap +17:05:05 root 174 0.0 0.0 0.0 0.0 1 bioset +17:05:05 ram 18291 0.0 0.0 0.0 0.0 2 slack +17:05:05 ram 5274 0.0 0.0 0.0 0.0 3 dbus-daemon +17:05:05 root 23736 0.0 0.0 0.0 0.0 3 kworker/3:1 +17:05:05 ram 6329 0.0 0.0 0.0 0.0 2 update-notifier +17:05:05 ram 5818 0.0 0.0 0.0 0.0 0 gvfs-mtp-volume +17:05:05 root 5829 0.0 0.0 0.0 0.0 1 fwupd +17:05:05 ram 6855 0.0 0.0 0.0 0.0 0 deja-dup-monito +17:05:05 root 22728 0.0 0.0 0.0 0.0 0 kworker/u16:3 +17:05:05 ram 11327 0.0 0.0 0.0 0.0 3 gvfsd-dnssd +17:05:05 pcp 4810 0.0 0.0 0.0 0.0 2 pmlogger +17:05:05 ram 18465 0.0 0.0 0.0 0.0 0 chrome +17:05:05 colord 5154 0.0 0.0 0.0 0.0 0 colord +17:05:05 root 24782 0.0 0.0 0.0 0.0 3 kworker/3:2 +17:05:05 root 461 0.0 0.0 0.0 0.0 2 edac-poller +17:05:05 ram 18641 0.0 0.0 0.0 0.0 1 chrome +17:05:05 ram 5842 0.0 0.0 0.0 0.0 3 gvfsd-trash +17:05:05 ram 5633 0.0 0.0 0.0 0.0 3 indicator-sound +17:05:05 unbound 4821 0.0 0.0 0.0 0.0 0 unbound +17:05:05 ram 5335 0.0 0.0 0.0 0.0 2 ibus-daemon +17:05:05 ram 24868 0.0 0.0 0.0 0.0 0 python +17:05:05 ram 21722 0.0 0.0 0.0 0.0 1 chrome +17:05:05 root 24783 0.0 0.0 0.0 0.0 0 kworker/u16:2 +17:05:05 ram 18420 0.0 0.0 0.0 0.0 1 cat +17:05:05 root 18062 0.0 0.0 0.0 0.0 2 dhclient +17:05:05 ram 5343 0.0 0.0 0.0 0.0 3 upstart-dbus-br +17:05:05 ram 6023 0.0 0.0 0.0 0.0 2 gconfd-2 +17:05:05 ram 5345 0.0 0.0 0.0 0.0 0 upstart-dbus-br +17:05:05 root 22757 0.0 0.0 0.0 0.0 1 kworker/1:0 +17:05:05 root 21457 0.0 0.0 0.0 0.0 2 kworker/2:2 +17:05:05 ram 5866 0.0 0.0 0.0 0.0 2 evolution-calen +17:05:05 ram 5671 0.0 0.0 0.0 0.0 3 indicator-appli +17:05:05 ram 5876 0.0 0.0 0.0 0.0 3 evolution-addre +17:05:05 ram 5878 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:05 ram 5367 0.0 0.0 0.0 0.0 0 gpg-agent +17:05:05 root 1031 0.0 0.0 0.0 0.0 0 polkitd +17:05:05 root 249 0.0 0.0 0.0 0.0 0 raid5wq +17:05:05 ram 8954 0.0 0.0 0.0 0.0 2 unity-scope-hom +17:05:05 ram 18421 0.0 0.0 0.0 0.0 1 cat +17:05:05 nobody 5273 0.0 0.0 0.0 0.0 3 dnsmasq +17:05:05 ram 5375 0.0 0.0 0.0 0.0 3 gvfsd +17:05:05 ram 25344 0.0 0.0 0.0 0.0 1 bash +17:05:05 ram 5380 0.0 0.0 0.0 0.0 3 gvfsd-fuse +17:05:05 ram 5895 0.0 0.0 0.0 0.0 2 evolution-addre +17:05:05 ram 8969 0.0 0.0 0.0 0.0 3 unity-files-dae +17:05:05 ram 8971 0.0 0.0 0.0 0.0 3 unity-music-dae +17:05:05 systemd-timesync 780 0.0 0.0 0.0 0.0 3 systemd-timesyn +17:05:05 ram 5389 0.0 0.0 0.0 0.0 3 ibus-dconf +17:05:05 ram 5395 0.0 0.0 0.0 0.0 3 upstart-file-br +17:05:05 ram 5396 0.0 0.0 0.0 0.0 3 ibus-ui-gtk3 +17:05:05 ram 18503 0.0 0.0 0.0 0.0 1 chrome +17:05:05 ram 5398 0.0 0.0 0.0 0.0 1 ibus-x11 +17:05:05 root 279 0.0 0.0 0.0 0.0 0 bioset +17:05:05 ram 7130 0.0 0.0 0.0 0.0 0 notify-osd +17:05:05 ram 5806 0.0 0.0 0.0 0.0 1 gvfs-gphoto2-vo +17:05:05 ram 5789 0.0 0.0 0.0 0.0 2 gvfs-goa-volume +17:05:05 ram 18224 0.0 0.0 0.0 0.0 1 slack +17:05:05 root 17945 0.0 0.0 0.0 0.0 3 irq/30-mei_me +17:05:05 ram 5414 0.0 0.0 0.0 0.0 0 at-spi-bus-laun +17:05:05 ram 19642 0.0 0.0 0.0 0.0 3 atom +17:05:05 ram 5419 0.0 0.0 0.0 0.0 2 dbus-daemon +17:05:05 ram 18220 0.0 0.0 0.0 0.0 1 slack +17:05:05 ram 5421 0.0 0.0 0.0 0.0 2 at-spi2-registr +17:05:05 syslog 814 0.0 0.0 0.0 0.0 2 rsyslogd +17:05:05 messagebus 815 0.0 0.0 0.0 0.0 1 dbus-daemon +17:05:05 root 304 0.0 0.0 0.0 0.0 1 kworker/1:1H +17:05:05 root 306 0.0 0.0 0.0 0.0 3 jbd2/sda8-8 +17:05:05 root 307 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:05 ram 5946 0.0 0.0 0.0 0.0 1 zeitgeist-datah +17:05:05 root 22751 0.0 0.0 0.0 0.0 2 kworker/u16:0 +17:05:05 ram 5441 0.0 0.0 0.0 0.0 0 unity-settings- +17:05:05 ram 5442 0.0 0.0 0.0 0.0 2 bamfdaemon +17:05:05 root 22852 0.0 0.0 0.0 0.0 0 kworker/u16:1 +17:05:05 ram 5957 0.0 0.0 0.0 0.0 0 zeitgeist-daemo +17:05:05 ram 18253 0.0 0.0 0.0 0.0 0 slack +17:05:05 root 4937 0.0 0.0 0.0 0.0 2 apache2 +17:05:05 root 25419 0.0 0.0 0.0 0.0 2 kworker/2:1 +17:05:05 www-data 4940 0.0 1.0 0.0 1.0 0 apache2 +17:05:05 www-data 4941 0.0 0.0 0.0 0.0 3 apache2 +17:05:05 ram 5456 0.0 0.0 0.0 0.0 2 hud-service +17:05:05 ram 5459 0.0 0.0 0.0 0.0 2 gnome-session-b +17:05:05 ram 5461 0.0 0.0 0.0 0.0 2 unity-panel-ser +17:05:05 ram 5462 0.0 0.0 0.0 0.0 2 compiz +17:05:05 root 855 0.0 0.0 0.0 0.0 2 NetworkManager +17:05:05 postgres 1369 0.0 0.0 0.0 0.0 2 postgres +17:05:05 postgres 1370 0.0 0.0 0.0 0.0 0 postgres +17:05:05 postgres 1371 0.0 0.0 0.0 0.0 0 postgres +17:05:05 postgres 1372 0.0 0.0 0.0 0.0 2 postgres +17:05:05 postgres 1373 0.0 0.0 0.0 0.0 0 postgres +17:05:05 root 862 0.0 0.0 0.0 0.0 1 cron +17:05:05 root 351 0.0 0.0 0.0 0.0 0 kauditd +17:05:05 ram 18428 0.0 0.0 0.0 0.0 2 chrome +17:05:05 root 866 0.0 0.0 0.0 0.0 1 ModemManager +17:05:05 ram 19618 0.0 0.0 0.0 0.0 0 atom +17:05:05 root 361 0.0 0.0 0.0 0.0 3 systemd-journal +17:05:05 ram 18459 0.0 0.0 0.0 0.0 2 chrome +17:05:05 root 1683 0.0 0.0 0.0 0.0 3 rtsx_usb_ms_2 +17:05:05 root 372 0.0 0.0 0.0 0.0 1 lvmetad +17:05:05 root 886 0.0 0.0 0.0 0.0 1 acpid +17:05:05 root 888 0.0 0.0 0.0 0.0 2 systemd-logind +17:05:05 root 63 0.0 0.0 0.0 0.0 2 acpi_thermal_pm +17:05:05 root 892 0.0 0.0 0.0 0.0 0 atd +17:05:05 root 895 0.0 0.0 0.0 0.0 3 accounts-daemon +17:05:05 root 897 0.0 0.0 0.0 0.0 3 thermald +17:05:05 root 386 0.0 0.0 0.0 0.0 1 systemd-udevd +17:05:05 ram 18411 2.0 0.0 0.0 2.0 1 chrome +17:05:05 root 662 0.0 0.0 0.0 0.0 3 jbd2/sda10-8 +17:05:05 ram 5953 0.0 0.0 0.0 0.0 1 sh +17:05:05 whoopsie 904 0.0 0.0 0.0 0.0 2 whoopsie +17:05:05 root 1087 1.0 0.0 0.0 1.0 1 Xorg +17:05:05 root 663 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:05 ram 18498 0.0 0.0 0.0 0.0 0 chrome +17:05:05 avahi 912 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:05 root 401 0.0 0.0 0.0 0.0 0 kworker/0:1H +17:05:05 root 915 0.0 0.0 0.0 0.0 3 snapd +17:05:05 root 24981 0.0 0.0 0.0 0.0 0 kworker/0:2 +17:05:05 ram 18508 0.0 0.0 0.0 0.0 2 chrome +17:05:05 root 153 0.0 0.0 0.0 0.0 3 scsi_tmf_0 +17:05:05 root 154 0.0 0.0 0.0 0.0 1 scsi_eh_1 +17:05:05 ram 19653 0.0 0.0 0.0 0.0 0 atom +17:05:05 root 1173 0.0 0.0 0.0 0.0 1 pmdaroot +17:05:05 ram 18337 0.0 0.0 0.0 0.0 3 slack +17:05:05 pcp 1179 0.0 0.0 0.0 0.0 3 pmdasimple +17:05:05 ram 5702 0.0 0.0 0.0 0.0 3 unity-fallback- +17:05:05 ram 5964 0.0 0.0 0.0 0.0 2 zeitgeist-fts +17:05:05 ram 18495 0.0 0.0 0.0 0.0 0 chrome +17:05:05 root 24411 0.0 0.0 0.0 0.0 1 kworker/1:1 +17:05:05 ram 5703 0.0 0.0 0.0 0.0 3 polkit-gnome-au +17:05:05 root 5039 0.0 0.0 0.0 0.0 0 lightdm +17:05:05 ram 11289 0.0 0.0 0.0 0.0 0 gvfsd-network +17:05:05 ram 19614 0.0 0.0 0.0 0.0 0 atom +17:05:05 root 25460 0.0 0.0 0.0 0.0 1 kworker/1:2 +17:05:05 ram 5794 0.0 0.0 0.0 0.0 2 gvfs-afc-volume +17:05:05 ram 5620 0.0 0.0 0.0 0.0 3 indicator-messa +17:05:05 ram 23704 0.0 0.0 0.0 0.0 1 gedit +17:05:05 ram 5621 0.0 0.0 0.0 0.0 0 indicator-bluet +17:05:05 ram 18581 0.0 0.0 0.0 0.0 2 chrome +17:05:05 root 24005 0.0 0.0 0.0 0.0 0 kworker/0:1 +17:05:05 ram 5708 0.0 0.0 0.0 0.0 3 nm-applet +17:05:05 root 24523 0.0 0.0 0.0 0.0 1 bioset +17:05:05 root 1186 0.0 0.0 0.0 0.0 0 wpa_supplicant +17:05:05 ram 5709 0.0 0.0 0.0 0.0 3 gnome-software +17:05:05 rtkit 5072 0.0 0.0 0.0 0.0 1 rtkit-daemon +17:05:05 root 465 0.0 0.0 0.0 0.0 2 kworker/2:1H +17:05:05 root 163 0.0 0.0 0.0 0.0 0 scsi_tmf_5 +17:05:05 root 468 0.0 0.0 0.0 0.0 3 kworker/3:1H +17:05:05 ram 22777 10.7 1.1 0.0 11.799999999999999 0 chrome +17:05:05 root 152 0.0 0.0 0.0 0.0 1 scsi_eh_0 +17:05:05 root 1175 0.0 0.0 0.0 0.0 1 pmdaxfs +17:05:05 ram 5597 0.0 0.0 0.0 0.0 1 ibus-engine-sim +17:05:05 root 24229 0.0 0.0 0.0 0.0 2 kworker/2:0 +17:05:05 ram 5600 0.0 0.0 0.0 0.0 0 syndaemon +17:05:05 ram 5604 1.0 1.0 0.0 2.0 2 pulseaudio +17:05:05 ram 19431 0.0 0.0 0.0 0.0 3 bash +17:05:05 ram 5608 0.0 0.0 0.0 0.0 2 dconf-service +17:05:05 ram 5628 0.0 0.0 0.0 0.0 1 indicator-datet +17:05:05 avahi 1002 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:05 root 1003 0.0 0.0 0.0 0.0 3 cups-browsed +17:05:05 ram 25541 0.0 0.0 0.0 0.0 3 pmlogger +17:05:05 ram 8967 0.0 0.0 0.0 0.0 0 unity-scope-loa +17:05:05 ram 19539 1.0 0.0 0.0 1.0 3 chrome +17:05:05 root 1012 0.0 0.0 0.0 0.0 0 irqbalance +17:05:05 root 1013 0.0 0.0 0.0 0.0 3 mdadm +17:05:05 ram 5623 0.0 0.0 0.0 0.0 2 indicator-power +17:05:05 ram 18424 0.0 0.0 0.0 0.0 1 chrome +17:05:05 ram 18425 0.0 0.0 0.0 0.0 0 nacl_helper +17:05:05 pcp 1176 0.0 0.0 0.0 0.0 2 pmdasample +17:05:05 root 508 0.0 0.0 0.0 0.0 1 cfg80211 +17:05:05 ram 18583 0.0 0.0 0.0 0.0 1 chrome +Timestamp UName PID usr system guest %CPU CPU Command +17:05:06 ram 5632 0.0 0.0 0.0 0.0 1 indicator-keybo +17:05:06 root 1 0.0 0.0 0.0 0.0 2 systemd +17:05:06 root 2 0.0 0.0 0.0 0.0 2 kthreadd +17:05:06 root 3 0.0 0.0 0.0 0.0 0 ksoftirqd/0 +17:05:06 root 5 0.0 0.0 0.0 0.0 0 kworker/0:0H +17:05:06 root 7 0.0 0.0 0.0 0.0 0 rcu_sched +17:05:06 root 8 0.0 0.0 0.0 0.0 0 rcu_bh +17:05:06 root 9 0.0 0.0 0.0 0.0 0 migration/0 +17:05:06 root 10 0.0 0.0 0.0 0.0 0 watchdog/0 +17:05:06 root 11 0.0 0.0 0.0 0.0 1 watchdog/1 +17:05:06 root 12 0.0 0.0 0.0 0.0 1 migration/1 +17:05:06 root 13 0.0 0.0 0.0 0.0 1 ksoftirqd/1 +17:05:06 root 15 0.0 0.0 0.0 0.0 1 kworker/1:0H +17:05:06 root 16 0.0 0.0 0.0 0.0 2 watchdog/2 +17:05:06 root 17 0.0 0.0 0.0 0.0 2 migration/2 +17:05:06 root 18 0.0 0.0 0.0 0.0 2 ksoftirqd/2 +17:05:06 ram 5635 0.0 0.0 0.0 0.0 1 indicator-print +17:05:06 root 20 0.0 0.0 0.0 0.0 2 kworker/2:0H +17:05:06 root 21 0.0 0.0 0.0 0.0 3 watchdog/3 +17:05:06 root 22 0.0 0.0 0.0 0.0 3 migration/3 +17:05:06 root 23 0.0 0.0 0.0 0.0 3 ksoftirqd/3 +17:05:06 root 25 0.0 0.0 0.0 0.0 3 kworker/3:0H +17:05:06 root 26 0.0 0.0 0.0 0.0 0 kdevtmpfs +17:05:06 root 27 0.0 0.0 0.0 0.0 1 netns +17:05:06 root 28 0.0 0.0 0.0 0.0 1 perf +17:05:06 root 29 0.0 0.0 0.0 0.0 0 khungtaskd +17:05:06 root 30 0.0 0.0 0.0 0.0 1 writeback +17:05:06 root 31 0.0 0.0 0.0 0.0 2 ksmd +17:05:06 root 32 0.0 0.0 0.0 0.0 2 khugepaged +17:05:06 root 33 0.0 0.0 0.0 0.0 2 crypto +17:05:06 root 34 0.0 0.0 0.0 0.0 2 kintegrityd +17:05:06 root 35 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 36 0.0 0.0 0.0 0.0 2 kblockd +17:05:06 root 37 0.0 0.0 0.0 0.0 2 ata_sff +17:05:06 root 38 0.0 0.0 0.0 0.0 2 md +17:05:06 root 39 0.0 0.0 0.0 0.0 3 devfreq_wq +17:05:06 root 3624 0.0 0.0 0.0 0.0 1 agetty +17:05:06 root 43 0.0 0.0 0.0 0.0 1 kswapd0 +17:05:06 root 44 0.0 0.0 0.0 0.0 2 vmstat +17:05:06 root 45 0.0 0.0 0.0 0.0 2 fsnotify_mark +17:05:06 root 46 0.0 0.0 0.0 0.0 0 ecryptfs-kthrea +17:05:06 ram 5681 0.0 0.0 0.0 0.0 1 evolution-sourc +17:05:06 root 5129 0.0 0.0 0.0 0.0 2 upowerd +17:05:06 ram 5176 0.0 0.0 0.0 0.0 1 systemd +17:05:06 ram 5178 0.0 0.0 0.0 0.0 0 (sd-pam +17:05:06 root 23100 0.0 0.0 0.0 0.0 0 kworker/0:0 +17:05:06 root 62 0.0 0.0 0.0 0.0 2 kthrotld +17:05:06 ram 5183 0.0 0.0 0.0 0.0 3 gnome-keyring-d +17:05:06 ram 5185 0.0 0.0 0.0 0.0 1 upstart +17:05:06 root 66 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 67 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 68 0.0 0.0 0.0 0.0 2 bioset +17:05:06 ram 5701 1.0 0.0 0.0 1.0 1 nautilus +17:05:06 root 70 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 71 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 72 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 73 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 74 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 75 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 76 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 77 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 78 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 79 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 80 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 81 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 82 0.0 0.0 0.0 0.0 2 bioset +17:05:06 root 83 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 84 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 85 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 86 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 87 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 88 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 89 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 90 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 605 0.0 0.0 0.0 0.0 3 wl_event_handle +17:05:06 root 95 0.0 0.0 0.0 0.0 2 ipv6_addrconf +17:05:06 ram 5734 0.0 0.0 0.0 0.0 1 artha +17:05:06 root 619 0.0 0.0 0.0 0.0 0 kvm-irqfd-clean +17:05:06 root 108 0.0 0.0 0.0 0.0 1 deferwq +17:05:06 root 109 0.0 0.0 0.0 0.0 1 charger_manager +17:05:06 ram 18263 0.0 0.0 0.0 0.0 1 slack +17:05:06 ram 18549 0.0 0.0 0.0 0.0 0 chrome +17:05:06 ram 5750 0.0 0.0 0.0 0.0 0 redshift +17:05:06 root 25535 0.0 0.0 0.0 0.0 3 kworker/3:0 +17:05:06 ram 18556 0.0 0.0 0.0 0.0 2 chrome +17:05:06 geoclue 5761 0.0 0.0 0.0 0.0 2 geoclue +17:05:06 ram 5637 0.0 0.0 0.0 0.0 2 indicator-sessi +17:05:06 ram 11395 0.0 0.0 0.0 0.0 0 gvfsd-metadata +17:05:06 ram 5767 0.0 0.0 0.0 0.0 0 gvfs-udisks2-vo +17:05:06 ram 18568 0.0 0.0 0.0 0.0 0 chrome +17:05:06 ram 18569 1.0 0.0 0.0 1.0 0 chrome +17:05:06 ram 24343 0.0 0.0 0.0 0.0 2 atom +17:05:06 root 5774 0.0 0.0 0.0 0.0 0 udisksd +17:05:06 root 1679 0.0 0.0 0.0 0.0 0 kmemstick +17:05:06 pcp 1171 0.0 0.0 0.0 0.0 2 pmcd +17:05:06 root 660 0.0 0.0 0.0 0.0 0 jbd2/sda9-8 +17:05:06 root 661 0.0 0.0 0.0 0.0 0 ext4-rsv-conver +17:05:06 ram 1174 0.0 1.0 0.0 1.0 3 pmdaproc +17:05:06 root 151 0.0 0.0 0.0 0.0 0 kpsmoused +17:05:06 ram 5272 0.0 0.0 0.0 0.0 3 upstart-udev-br +17:05:06 root 1177 0.0 0.0 0.0 0.0 0 pmdalinux +17:05:06 postgres 1178 0.0 0.0 0.0 0.0 2 postgres +17:05:06 root 155 0.0 0.0 0.0 0.0 3 scsi_tmf_1 +17:05:06 root 156 0.0 0.0 0.0 0.0 1 scsi_eh_2 +17:05:06 root 157 0.0 0.0 0.0 0.0 3 scsi_tmf_2 +17:05:06 root 158 0.0 0.0 0.0 0.0 1 scsi_eh_3 +17:05:06 root 159 0.0 0.0 0.0 0.0 0 scsi_tmf_3 +17:05:06 root 160 0.0 0.0 0.0 0.0 0 scsi_eh_4 +17:05:06 root 161 0.0 0.0 0.0 0.0 0 scsi_tmf_4 +17:05:06 root 162 0.0 0.0 0.0 0.0 1 scsi_eh_5 +17:05:06 root 1051 0.0 0.0 0.0 0.0 2 lightdm +17:05:06 ram 19424 0.0 0.0 0.0 0.0 1 gnome-terminal- +17:05:06 ram 5286 0.0 0.0 0.0 0.0 3 window-stack-br +17:05:06 ram 5800 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:06 root 169 0.0 0.0 0.0 0.0 2 kfd_process_wq +17:05:06 root 172 0.0 0.0 0.0 0.0 1 ttm_swap +17:05:06 root 174 0.0 0.0 0.0 0.0 1 bioset +17:05:06 ram 18291 0.0 0.0 0.0 0.0 2 slack +17:05:06 ram 5274 0.0 0.0 0.0 0.0 3 dbus-daemon +17:05:06 root 23736 0.0 0.0 0.0 0.0 3 kworker/3:1 +17:05:06 ram 6329 0.0 0.0 0.0 0.0 2 update-notifier +17:05:06 ram 5818 0.0 0.0 0.0 0.0 0 gvfs-mtp-volume +17:05:06 root 5829 0.0 0.0 0.0 0.0 1 fwupd +17:05:06 ram 6855 0.0 0.0 0.0 0.0 0 deja-dup-monito +17:05:06 root 22728 0.0 0.0 0.0 0.0 0 kworker/u16:3 +17:05:06 ram 11327 0.0 0.0 0.0 0.0 3 gvfsd-dnssd +17:05:06 pcp 4810 0.0 0.0 0.0 0.0 2 pmlogger +17:05:06 ram 18465 0.0 0.0 0.0 0.0 0 chrome +17:05:06 colord 5154 0.0 0.0 0.0 0.0 0 colord +17:05:06 root 24782 0.0 0.0 0.0 0.0 3 kworker/3:2 +17:05:06 root 461 0.0 0.0 0.0 0.0 2 edac-poller +17:05:06 ram 18641 0.0 0.0 0.0 0.0 1 chrome +17:05:06 ram 5842 0.0 0.0 0.0 0.0 3 gvfsd-trash +17:05:06 ram 5633 0.0 0.0 0.0 0.0 3 indicator-sound +17:05:06 unbound 4821 0.0 0.0 0.0 0.0 0 unbound +17:05:06 ram 5335 0.0 0.0 0.0 0.0 2 ibus-daemon +17:05:06 ram 24868 0.0 0.0 0.0 0.0 0 python +17:05:06 ram 21722 0.0 0.0 0.0 0.0 1 chrome +17:05:06 root 24783 0.0 0.0 0.0 0.0 0 kworker/u16:2 +17:05:06 ram 18420 0.0 0.0 0.0 0.0 1 cat +17:05:06 root 18062 0.0 0.0 0.0 0.0 2 dhclient +17:05:06 ram 5343 0.0 0.0 0.0 0.0 3 upstart-dbus-br +17:05:06 ram 6023 0.0 0.0 0.0 0.0 2 gconfd-2 +17:05:06 ram 5345 0.0 0.0 0.0 0.0 0 upstart-dbus-br +17:05:06 root 22757 0.0 0.0 0.0 0.0 1 kworker/1:0 +17:05:06 root 21457 0.0 0.0 0.0 0.0 2 kworker/2:2 +17:05:06 ram 5866 0.0 0.0 0.0 0.0 2 evolution-calen +17:05:06 ram 5671 0.0 0.0 0.0 0.0 3 indicator-appli +17:05:06 ram 5876 0.0 0.0 0.0 0.0 3 evolution-addre +17:05:06 ram 5878 0.0 0.0 0.0 0.0 3 evolution-calen +17:05:06 ram 5367 0.0 0.0 0.0 0.0 0 gpg-agent +17:05:06 root 1031 0.0 0.0 0.0 0.0 0 polkitd +17:05:06 root 249 0.0 0.0 0.0 0.0 0 raid5wq +17:05:06 ram 8954 0.0 0.0 0.0 0.0 2 unity-scope-hom +17:05:06 ram 18421 0.0 0.0 0.0 0.0 1 cat +17:05:06 nobody 5273 0.0 0.0 0.0 0.0 3 dnsmasq +17:05:06 ram 5375 0.0 0.0 0.0 0.0 3 gvfsd +17:05:06 ram 25344 0.0 0.0 0.0 0.0 1 bash +17:05:06 ram 5380 0.0 0.0 0.0 0.0 3 gvfsd-fuse +17:05:06 ram 5895 0.0 0.0 0.0 0.0 2 evolution-addre +17:05:06 ram 8969 0.0 0.0 0.0 0.0 3 unity-files-dae +17:05:06 ram 8971 0.0 0.0 0.0 0.0 3 unity-music-dae +17:05:06 systemd-timesync 780 0.0 0.0 0.0 0.0 3 systemd-timesyn +17:05:06 ram 5389 0.0 0.0 0.0 0.0 3 ibus-dconf +17:05:06 ram 5395 0.0 0.0 0.0 0.0 3 upstart-file-br +17:05:06 ram 5396 0.0 0.0 0.0 0.0 3 ibus-ui-gtk3 +17:05:06 ram 18503 0.0 0.0 0.0 0.0 2 chrome +17:05:06 ram 5398 0.0 0.0 0.0 0.0 1 ibus-x11 +17:05:06 root 279 0.0 0.0 0.0 0.0 0 bioset +17:05:06 ram 7130 0.0 0.0 0.0 0.0 0 notify-osd +17:05:06 ram 5806 0.0 0.0 0.0 0.0 1 gvfs-gphoto2-vo +17:05:06 ram 5789 0.0 0.0 0.0 0.0 2 gvfs-goa-volume +17:05:06 ram 18224 0.0 0.0 0.0 0.0 1 slack +17:05:06 root 17945 0.0 0.0 0.0 0.0 3 irq/30-mei_me +17:05:06 ram 5414 0.0 0.0 0.0 0.0 0 at-spi-bus-laun +17:05:06 ram 19642 0.0 0.0 0.0 0.0 3 atom +17:05:06 ram 5419 0.0 0.0 0.0 0.0 2 dbus-daemon +17:05:06 ram 18220 0.0 0.0 0.0 0.0 1 slack +17:05:06 ram 5421 0.0 0.0 0.0 0.0 2 at-spi2-registr +17:05:06 syslog 814 0.0 0.0 0.0 0.0 2 rsyslogd +17:05:06 messagebus 815 0.0 0.0 0.0 0.0 1 dbus-daemon +17:05:06 root 304 0.0 0.0 0.0 0.0 1 kworker/1:1H +17:05:06 root 306 0.0 0.0 0.0 0.0 3 jbd2/sda8-8 +17:05:06 root 307 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:06 ram 5946 0.0 0.0 0.0 0.0 1 zeitgeist-datah +17:05:06 root 22751 0.0 0.0 0.0 0.0 2 kworker/u16:0 +17:05:06 ram 5441 0.0 0.0 0.0 0.0 0 unity-settings- +17:05:06 ram 5442 0.0 0.0 0.0 0.0 2 bamfdaemon +17:05:06 root 22852 0.0 0.0 0.0 0.0 3 kworker/u16:1 +17:05:06 ram 5957 0.0 0.0 0.0 0.0 0 zeitgeist-daemo +17:05:06 ram 18253 0.0 0.0 0.0 0.0 0 slack +17:05:06 root 4937 0.0 0.0 0.0 0.0 2 apache2 +17:05:06 root 25419 0.0 0.0 0.0 0.0 2 kworker/2:1 +17:05:06 www-data 4940 0.0 0.0 0.0 0.0 0 apache2 +17:05:06 www-data 4941 0.0 0.0 0.0 0.0 3 apache2 +17:05:06 ram 5456 1.0 0.0 0.0 1.0 2 hud-service +17:05:06 ram 5459 0.0 0.0 0.0 0.0 2 gnome-session-b +17:05:06 ram 5461 0.0 0.0 0.0 0.0 2 unity-panel-ser +17:05:06 ram 5462 0.0 1.0 0.0 1.0 2 compiz +17:05:06 root 855 0.0 0.0 0.0 0.0 2 NetworkManager +17:05:06 postgres 1369 0.0 0.0 0.0 0.0 2 postgres +17:05:06 postgres 1370 0.0 0.0 0.0 0.0 0 postgres +17:05:06 postgres 1371 0.0 0.0 0.0 0.0 0 postgres +17:05:06 postgres 1372 0.0 0.0 0.0 0.0 2 postgres +17:05:06 postgres 1373 0.0 0.0 0.0 0.0 0 postgres +17:05:06 root 862 0.0 0.0 0.0 0.0 1 cron +17:05:06 root 351 0.0 0.0 0.0 0.0 0 kauditd +17:05:06 ram 18428 0.0 0.0 0.0 0.0 2 chrome +17:05:06 root 866 0.0 0.0 0.0 0.0 1 ModemManager +17:05:06 ram 19618 0.0 0.0 0.0 0.0 0 atom +17:05:06 root 361 0.0 0.0 0.0 0.0 3 systemd-journal +17:05:06 ram 18459 1.0 0.0 0.0 1.0 0 chrome +17:05:06 root 1683 0.0 0.0 0.0 0.0 3 rtsx_usb_ms_2 +17:05:06 root 372 0.0 0.0 0.0 0.0 1 lvmetad +17:05:06 root 886 0.0 0.0 0.0 0.0 1 acpid +17:05:06 root 888 0.0 0.0 0.0 0.0 2 systemd-logind +17:05:06 root 63 0.0 0.0 0.0 0.0 2 acpi_thermal_pm +17:05:06 root 892 0.0 0.0 0.0 0.0 0 atd +17:05:06 root 895 0.0 0.0 0.0 0.0 3 accounts-daemon +17:05:06 root 897 0.0 0.0 0.0 0.0 3 thermald +17:05:06 root 386 0.0 0.0 0.0 0.0 1 systemd-udevd +17:05:06 ram 18411 4.0 0.0 0.0 4.0 1 chrome +17:05:06 root 662 0.0 0.0 0.0 0.0 1 jbd2/sda10-8 +17:05:06 ram 5953 0.0 0.0 0.0 0.0 1 sh +17:05:06 whoopsie 904 0.0 0.0 0.0 0.0 2 whoopsie +17:05:06 root 1087 0.0 0.0 0.0 0.0 1 Xorg +17:05:06 root 663 0.0 0.0 0.0 0.0 1 ext4-rsv-conver +17:05:06 ram 18498 0.0 0.0 0.0 0.0 0 chrome +17:05:06 avahi 912 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:06 root 401 0.0 0.0 0.0 0.0 0 kworker/0:1H +17:05:06 root 915 0.0 0.0 0.0 0.0 3 snapd +17:05:06 root 24981 0.0 0.0 0.0 0.0 0 kworker/0:2 +17:05:06 ram 18508 0.0 0.0 0.0 0.0 2 chrome +17:05:06 root 153 0.0 0.0 0.0 0.0 3 scsi_tmf_0 +17:05:06 root 154 0.0 0.0 0.0 0.0 1 scsi_eh_1 +17:05:06 ram 19653 0.0 0.0 0.0 0.0 0 atom +17:05:06 root 1173 0.0 0.0 0.0 0.0 1 pmdaroot +17:05:06 ram 18337 0.0 0.0 0.0 0.0 3 slack +17:05:06 pcp 1179 0.0 0.0 0.0 0.0 3 pmdasimple +17:05:06 ram 5702 0.0 0.0 0.0 0.0 3 unity-fallback- +17:05:06 ram 5964 0.0 0.0 0.0 0.0 2 zeitgeist-fts +17:05:06 ram 18495 0.0 0.0 0.0 0.0 0 chrome +17:05:06 root 24411 0.0 0.0 0.0 0.0 1 kworker/1:1 +17:05:06 ram 5703 0.0 0.0 0.0 0.0 3 polkit-gnome-au +17:05:06 root 5039 0.0 0.0 0.0 0.0 0 lightdm +17:05:06 ram 11289 0.0 0.0 0.0 0.0 0 gvfsd-network +17:05:06 ram 19614 0.0 0.0 0.0 0.0 0 atom +17:05:06 root 25460 0.0 0.0 0.0 0.0 1 kworker/1:2 +17:05:06 ram 5794 0.0 0.0 0.0 0.0 2 gvfs-afc-volume +17:05:06 ram 5620 0.0 0.0 0.0 0.0 3 indicator-messa +17:05:06 ram 23704 0.0 0.0 0.0 0.0 1 gedit +17:05:06 ram 5621 0.0 0.0 0.0 0.0 0 indicator-bluet +17:05:06 ram 18581 0.0 0.0 0.0 0.0 2 chrome +17:05:06 root 24005 0.0 0.0 0.0 0.0 0 kworker/0:1 +17:05:06 ram 5708 0.0 0.0 0.0 0.0 3 nm-applet +17:05:06 root 24523 0.0 0.0 0.0 0.0 1 bioset +17:05:06 root 1186 0.0 0.0 0.0 0.0 0 wpa_supplicant +17:05:06 ram 5709 0.0 0.0 0.0 0.0 3 gnome-software +17:05:06 rtkit 5072 0.0 0.0 0.0 0.0 1 rtkit-daemon +17:05:06 root 465 0.0 0.0 0.0 0.0 2 kworker/2:1H +17:05:06 root 163 0.0 0.0 0.0 0.0 0 scsi_tmf_5 +17:05:06 root 468 0.0 0.0 0.0 0.0 3 kworker/3:1H +17:05:06 ram 22777 7.1 1.0 0.0 8.1 1 chrome +17:05:06 root 152 0.0 0.0 0.0 0.0 1 scsi_eh_0 +17:05:06 root 1175 0.0 0.0 0.0 0.0 1 pmdaxfs +17:05:06 ram 5597 0.0 0.0 0.0 0.0 1 ibus-engine-sim +17:05:06 root 24229 0.0 0.0 0.0 0.0 2 kworker/2:0 +17:05:06 ram 5600 0.0 0.0 0.0 0.0 0 syndaemon +17:05:06 ram 5604 1.9 0.0 0.0 1.9 1 pulseaudio +17:05:06 ram 19431 0.0 0.0 0.0 0.0 3 bash +17:05:06 ram 5608 0.0 0.0 0.0 0.0 2 dconf-service +17:05:06 ram 5628 0.0 0.0 0.0 0.0 1 indicator-datet +17:05:06 avahi 1002 0.0 0.0 0.0 0.0 3 avahi-daemon +17:05:06 root 1003 0.0 0.0 0.0 0.0 3 cups-browsed +17:05:06 ram 25541 0.0 0.0 0.0 0.0 3 pmlogger +17:05:06 ram 8967 0.0 0.0 0.0 0.0 0 unity-scope-loa +17:05:06 ram 19539 0.0 0.0 0.0 0.0 3 chrome +17:05:06 root 1012 0.0 0.0 0.0 0.0 0 irqbalance +17:05:06 root 1013 0.0 0.0 0.0 0.0 3 mdadm +17:05:06 ram 5623 0.0 0.0 0.0 0.0 2 indicator-power +17:05:06 ram 18424 0.0 0.0 0.0 0.0 1 chrome +17:05:06 ram 18425 0.0 0.0 0.0 0.0 0 nacl_helper +17:05:06 pcp 1176 0.0 0.0 0.0 0.0 2 pmdasample +17:05:06 root 508 0.0 0.0 0.0 0.0 1 cfg80211 +17:05:06 ram 18583 0.0 0.0 0.0 0.0 1 chrome + +=== pcp-pidstat with given samples count +Linux ram-Lenovo 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 (4 CPU) +Timestamp UID PID usr system guest %CPU CPU Command +Timestamp UID PID usr system guest %CPU CPU Command + +=== pcp-pidstat priority and scheduling information +Linux ram-Lenovo 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 (4 CPU) +Timestamp UID PID prio policy Command +17:05:04 0 9 99 FIFO migration/0 +17:05:04 0 10 99 FIFO watchdog/0 +17:05:04 0 11 99 FIFO watchdog/1 +17:05:04 0 12 99 FIFO migration/1 +17:05:04 0 16 99 FIFO watchdog/2 +17:05:04 0 17 99 FIFO migration/2 +17:05:04 0 21 99 FIFO watchdog/3 +17:05:04 0 22 99 FIFO migration/3 +17:05:04 0 17945 50 FIFO irq/30-mei_me +Timestamp UID PID prio policy Command +17:05:05 0 9 99 FIFO migration/0 +17:05:05 0 10 99 FIFO watchdog/0 +17:05:05 0 11 99 FIFO watchdog/1 +17:05:05 0 12 99 FIFO migration/1 +17:05:05 0 16 99 FIFO watchdog/2 +17:05:05 0 17 99 FIFO migration/2 +17:05:05 0 21 99 FIFO watchdog/3 +17:05:05 0 22 99 FIFO migration/3 +17:05:05 0 17945 50 FIFO irq/30-mei_me +Timestamp UID PID prio policy Command +17:05:06 0 9 99 FIFO migration/0 +17:05:06 0 10 99 FIFO watchdog/0 +17:05:06 0 11 99 FIFO watchdog/1 +17:05:06 0 12 99 FIFO migration/1 +17:05:06 0 16 99 FIFO watchdog/2 +17:05:06 0 17 99 FIFO migration/2 +17:05:06 0 21 99 FIFO watchdog/3 +17:05:06 0 22 99 FIFO migration/3 +17:05:06 0 17945 50 FIFO irq/30-mei_me + +=== pcp-pidstat memory utilization +Linux ram-Lenovo 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 (4 CPU) +Timestamp UID PID MinFlt/s MajFlt/s VSize RSS %Mem Command +17:05:04 1000 5632 ? ? 714080 4500 0.12 indicator-keybo +17:05:04 0 1 ? ? 185436 3984 0.1 systemd +17:05:04 1000 5635 ? ? 547032 4168 0.11 indicator-print +17:05:04 0 3624 ? ? 23008 352 0.01 agetty +17:05:04 1000 5681 ? ? 1111676 2592 0.07 evolution-sourc +17:05:04 0 5129 ? ? 354652 5332 0.14 upowerd +17:05:04 1000 5176 ? ? 45380 1492 0.04 systemd +17:05:04 1000 5178 ? ? 63308 396 0.01 (sd-pam +17:05:04 1000 5183 ? ? 286888 3892 0.1 gnome-keyring-d +17:05:04 1000 5185 ? ? 53644 2060 0.05 upstart +17:05:04 1000 5701 ? ? 1119960 51320 1.35 nautilus +17:05:04 1000 5734 ? ? 603428 10284 0.27 artha +17:05:04 1000 18263 ? ? 1141588 96392 2.54 slack +17:05:04 1000 18549 ? ? 785592 58736 1.55 chrome +17:05:04 1000 5750 ? ? 291832 344 0.01 redshift +17:05:04 1000 18556 ? ? 752784 42032 1.11 chrome +17:05:04 123 5761 ? ? 371156 7024 0.19 geoclue +17:05:04 1000 5637 ? ? 828876 1620 0.04 indicator-sessi +17:05:04 1000 11395 ? ? 193180 1600 0.04 gvfsd-metadata +17:05:04 1000 5767 ? ? 292512 2844 0.07 gvfs-udisks2-vo +17:05:04 1000 18568 ? ? 774296 51944 1.37 chrome +17:05:04 1000 18569 ? ? 776164 52508 1.38 chrome +17:05:04 1000 24343 ? ? 893736 51208 1.35 atom +17:05:04 0 5774 ? ? 433620 5396 0.14 udisksd +17:05:04 999 1171 ? ? 54516 2040 0.05 pmcd +17:05:04 1000 1174 ? ? 46708 2364 0.06 pmdaproc +17:05:04 1000 5272 ? ? 39928 1152 0.03 upstart-udev-br +17:05:04 0 1177 ? ? 37444 712 0.02 pmdalinux +17:05:04 124 1178 ? ? 301812 2852 0.08 postgres +17:05:04 0 1051 ? ? 350408 1616 0.04 lightdm +17:05:04 1000 19424 ? ? 661348 24460 0.64 gnome-terminal- +17:05:04 1000 5286 ? ? 93416 2656 0.07 window-stack-br +17:05:04 1000 5800 ? ? 862592 2096 0.06 evolution-calen +17:05:04 1000 18291 ? ? 1327188 178548 4.71 slack +17:05:04 1000 5274 ? ? 48308 4768 0.13 dbus-daemon +17:05:04 1000 6329 ? ? 524028 5988 0.16 update-notifier +17:05:04 1000 5818 ? ? 266700 1660 0.04 gvfs-mtp-volume +17:05:04 0 5829 ? ? 628728 19284 0.51 fwupd +17:05:04 1000 6855 ? ? 442520 2160 0.06 deja-dup-monito +17:05:04 1000 11327 ? ? 368792 1200 0.03 gvfsd-dnssd +17:05:04 999 4810 ? ? 43856 1056 0.03 pmlogger +17:05:04 1000 18465 ? ? 391548 6644 0.18 chrome +17:05:04 113 5154 ? ? 308252 3280 0.09 colord +17:05:04 1000 18641 ? ? 990408 113420 2.99 chrome +17:05:04 1000 5842 ? ? 357636 988 0.03 gvfsd-trash +17:05:04 1000 5633 ? ? 744440 3420 0.09 indicator-sound +17:05:04 122 4821 ? ? 54500 11748 0.31 unbound +17:05:04 1000 5335 ? ? 354736 6456 0.17 ibus-daemon +17:05:04 1000 24868 ? ? 49592 18976 0.5 python +17:05:04 1000 21722 ? ? 897828 130960 3.45 chrome +17:05:04 1000 18420 ? ? 14516 100 0.0 cat +17:05:04 0 18062 ? ? 16120 2204 0.06 dhclient +17:05:04 1000 5343 ? ? 39864 88 0.0 upstart-dbus-br +17:05:04 1000 6023 ? ? 68368 1480 0.04 gconfd-2 +17:05:04 1000 5345 ? ? 39864 112 0.0 upstart-dbus-br +17:05:04 1000 5866 ? ? 888340 1944 0.05 evolution-calen +17:05:04 1000 5671 ? ? 395968 5144 0.14 indicator-appli +17:05:04 1000 5876 ? ? 697644 1644 0.04 evolution-addre +17:05:04 1000 5878 ? ? 1069192 2180 0.06 evolution-calen +17:05:04 1000 5367 ? ? 173608 160 0.0 gpg-agent +17:05:04 0 1031 ? ? 288936 2300 0.06 polkitd +17:05:04 1000 8954 ? ? 782972 2308 0.06 unity-scope-hom +17:05:04 1000 18421 ? ? 14516 72 0.0 cat +17:05:04 65534 5273 ? ? 59936 960 0.03 dnsmasq +17:05:04 1000 5375 ? ? 281592 1072 0.03 gvfsd +17:05:04 1000 25344 ? ? 34036 9512 0.25 bash +17:05:04 1000 5380 ? ? 406860 1104 0.03 gvfsd-fuse +17:05:04 1000 5895 ? ? 846864 2584 0.07 evolution-addre +17:05:04 1000 8969 ? ? 522984 2704 0.07 unity-files-dae +17:05:04 1000 8971 ? ? 340748 2164 0.06 unity-music-dae +17:05:04 100 780 ? ? 102384 664 0.02 systemd-timesyn +17:05:04 1000 5389 ? ? 271332 1284 0.03 ibus-dconf +17:05:04 1000 5395 ? ? 48356 860 0.02 upstart-file-br +17:05:04 1000 5396 ? ? 477908 7124 0.19 ibus-ui-gtk3 +17:05:04 1000 18503 ? ? 1500876 114160 3.01 chrome +17:05:04 1000 5398 ? ? 427552 4172 0.11 ibus-x11 +17:05:04 1000 7130 ? ? 514172 38440 1.01 notify-osd +17:05:04 1000 5806 ? ? 278900 1960 0.05 gvfs-gphoto2-vo +17:05:04 1000 5789 ? ? 264600 860 0.02 gvfs-goa-volume +17:05:04 1000 18224 ? ? 309976 6440 0.17 slack +17:05:04 1000 5414 ? ? 338008 1292 0.03 at-spi-bus-laun +17:05:04 1000 19642 ? ? 423528 42964 1.13 atom +17:05:04 1000 5419 ? ? 43028 1012 0.03 dbus-daemon +17:05:04 1000 18220 ? ? 1543240 77648 2.05 slack +17:05:04 1000 5421 ? ? 206868 1764 0.05 at-spi2-registr +17:05:04 104 814 ? ? 256396 940 0.02 rsyslogd +17:05:04 106 815 ? ? 44388 2920 0.08 dbus-daemon +17:05:04 1000 5946 ? ? 577500 4612 0.12 zeitgeist-datah +17:05:04 1000 5441 ? ? 1061192 12944 0.34 unity-settings- +17:05:04 1000 5442 ? ? 547624 11488 0.3 bamfdaemon +17:05:04 1000 5957 ? ? 410416 3876 0.1 zeitgeist-daemo +17:05:04 1000 18253 ? ? 592588 88844 2.34 slack +17:05:04 0 4937 ? ? 71576 628 0.02 apache2 +17:05:04 33 4940 ? ? 360740 612 0.02 apache2 +17:05:04 33 4941 ? ? 360740 612 0.02 apache2 +17:05:04 1000 5456 ? ? 701124 26084 0.69 hud-service +17:05:04 1000 5459 ? ? 560592 3572 0.09 gnome-session-b +17:05:04 1000 5461 ? ? 643552 25080 0.66 unity-panel-ser +17:05:04 1000 5462 ? ? 1570040 70980 1.87 compiz +17:05:04 0 855 ? ? 456536 5332 0.14 NetworkManager +17:05:04 124 1369 ? ? 301812 76 0.0 postgres +17:05:04 124 1370 ? ? 301812 976 0.03 postgres +17:05:04 124 1371 ? ? 301812 320 0.01 postgres +17:05:04 124 1372 ? ? 302240 1560 0.04 postgres +17:05:04 124 1373 ? ? 156796 176 0.0 postgres +17:05:04 0 862 ? ? 36076 892 0.02 cron +17:05:04 1000 18428 ? ? 367660 6164 0.16 chrome +17:05:04 0 866 ? ? 337320 1332 0.04 ModemManager +17:05:04 1000 19618 ? ? 305616 7108 0.19 atom +17:05:04 0 361 ? ? 32076 3240 0.09 systemd-journal +17:05:04 1000 18459 ? ? 929620 216644 5.71 chrome +17:05:04 0 372 ? ? 94772 0 0.0 lvmetad +17:05:04 0 886 ? ? 4400 868 0.02 acpid +17:05:04 0 888 ? ? 28628 1244 0.03 systemd-logind +17:05:04 0 892 ? ? 26044 504 0.01 atd +17:05:04 0 895 ? ? 282932 1556 0.04 accounts-daemon +17:05:04 0 897 ? ? 173500 1824 0.05 thermald +17:05:04 0 386 ? ? 46192 1512 0.04 systemd-udevd +17:05:04 1000 18411 ? ? 1558800 197716 5.21 chrome +17:05:04 1000 5953 ? ? 4508 0 0.0 sh +17:05:04 109 904 ? ? 374040 2680 0.07 whoopsie +17:05:04 0 1087 ? ? 500060 54124 1.43 Xorg +17:05:04 1000 18498 ? ? 935920 158556 4.18 chrome +17:05:04 111 912 ? ? 44912 1312 0.03 avahi-daemon +17:05:04 0 915 ? ? 231584 3776 0.1 snapd +17:05:04 1000 18508 ? ? 755856 41140 1.08 chrome +17:05:04 1000 19653 ? ? 1426648 248360 6.54 atom +17:05:04 0 1173 ? ? 37236 868 0.02 pmdaroot +17:05:04 1000 18337 ? ? 1297884 188584 4.97 slack +17:05:04 999 1179 ? ? 45656 712 0.02 pmdasimple +17:05:04 1000 5702 ? ? 576604 3804 0.1 unity-fallback- +17:05:04 1000 5964 ? ? 324152 6700 0.18 zeitgeist-fts +17:05:04 1000 18495 ? ? 750732 46724 1.23 chrome +17:05:04 1000 5703 ? ? 429160 3536 0.09 polkit-gnome-au +17:05:04 0 5039 ? ? 230300 1364 0.04 lightdm +17:05:04 1000 11289 ? ? 433748 1192 0.03 gvfsd-network +17:05:04 1000 19614 ? ? 1459168 95140 2.51 atom +17:05:04 1000 5794 ? ? 410680 2088 0.06 gvfs-afc-volume +17:05:04 1000 5620 ? ? 352000 1280 0.03 indicator-messa +17:05:04 1000 23704 ? ? 658444 41880 1.1 gedit +17:05:04 1000 5621 ? ? 414192 848 0.02 indicator-bluet +17:05:04 1000 18581 ? ? 752776 46348 1.22 chrome +17:05:04 1000 5708 ? ? 662884 14044 0.37 nm-applet +17:05:04 0 1186 ? ? 44116 2352 0.06 wpa_supplicant +17:05:04 1000 5709 ? ? 1319872 19560 0.52 gnome-software +17:05:04 118 5072 ? ? 183544 956 0.03 rtkit-daemon +17:05:04 1000 22777 ? ? 1355200 415524 10.95 chrome +17:05:04 0 1175 ? ? 37240 1008 0.03 pmdaxfs +17:05:04 1000 5597 ? ? 195456 1596 0.04 ibus-engine-sim +17:05:04 1000 5600 ? ? 22372 912 0.02 syndaemon +17:05:04 1000 5604 ? ? 581800 5596 0.15 pulseaudio +17:05:04 1000 19431 ? ? 34980 9832 0.26 bash +17:05:04 1000 5608 ? ? 178792 1800 0.05 dconf-service +17:05:04 1000 5628 ? ? 1240056 3188 0.08 indicator-datet +17:05:04 111 1002 ? ? 44788 24 0.0 avahi-daemon +17:05:04 0 1003 ? ? 274828 1572 0.04 cups-browsed +17:05:04 1000 25541 ? ? 37272 3388 0.09 pmlogger +17:05:04 1000 8967 ? ? 591444 8556 0.23 unity-scope-loa +17:05:04 1000 19539 ? ? 949128 168752 4.45 chrome +17:05:04 0 1012 ? ? 19472 976 0.03 irqbalance +17:05:04 0 1013 ? ? 13376 44 0.0 mdadm +17:05:04 1000 5623 ? ? 430636 4544 0.12 indicator-power +17:05:04 1000 18424 ? ? 367660 13336 0.35 chrome +17:05:04 1000 18425 ? ? 142156 4824 0.13 nacl_helper +17:05:04 999 1176 ? ? 45728 1116 0.03 pmdasample +17:05:04 1000 18583 ? ? 799672 61856 1.63 chrome +Timestamp UID PID MinFlt/s MajFlt/s VSize RSS %Mem Command +17:05:05 1000 5632 0.0 0.0 714080 4500 0.12 indicator-keybo +17:05:05 0 1 0.0 0.0 185436 3984 0.1 systemd +17:05:05 1000 5635 0.0 0.0 547032 4168 0.11 indicator-print +17:05:05 0 3624 0.0 0.0 23008 352 0.01 agetty +17:05:05 1000 5681 0.0 0.0 1111676 2592 0.07 evolution-sourc +17:05:05 0 5129 0.0 0.0 354652 5332 0.14 upowerd +17:05:05 1000 5176 0.0 0.0 45380 1492 0.04 systemd +17:05:05 1000 5178 0.0 0.0 63308 396 0.01 (sd-pam +17:05:05 1000 5183 0.0 0.0 286888 3892 0.1 gnome-keyring-d +17:05:05 1000 5185 0.0 0.0 53644 2060 0.05 upstart +17:05:05 1000 5701 0.0 0.0 1119960 51320 1.35 nautilus +17:05:05 1000 5734 0.0 0.0 603428 10284 0.27 artha +17:05:05 1000 18263 0.0 0.0 1141588 96392 2.54 slack +17:05:05 1000 18549 0.0 0.0 785592 58736 1.55 chrome +17:05:05 1000 5750 0.0 0.0 291832 344 0.01 redshift +17:05:05 1000 18556 0.0 0.0 752784 42032 1.11 chrome +17:05:05 123 5761 0.0 0.0 371156 7024 0.19 geoclue +17:05:05 1000 5637 0.0 0.0 828876 1620 0.04 indicator-sessi +17:05:05 1000 11395 0.0 0.0 193180 1600 0.04 gvfsd-metadata +17:05:05 1000 5767 0.0 0.0 292512 2844 0.07 gvfs-udisks2-vo +17:05:05 1000 18568 0.0 0.0 774296 51944 1.37 chrome +17:05:05 1000 18569 0.0 0.0 776164 52508 1.38 chrome +17:05:05 1000 24343 0.0 0.0 893736 51208 1.35 atom +17:05:05 0 5774 0.0 0.0 433620 5396 0.14 udisksd +17:05:05 999 1171 48.0 0.0 54528 2084 0.05 pmcd +17:05:05 1000 1174 288.0 1.0 46708 2708 0.07 pmdaproc +17:05:05 1000 5272 0.0 0.0 39928 1152 0.03 upstart-udev-br +17:05:05 0 1177 0.0 0.0 37444 712 0.02 pmdalinux +17:05:05 124 1178 0.0 0.0 301812 2852 0.08 postgres +17:05:05 0 1051 0.0 0.0 350408 1616 0.04 lightdm +17:05:05 1000 19424 0.0 0.0 661348 24460 0.64 gnome-terminal- +17:05:05 1000 5286 0.0 0.0 93416 2656 0.07 window-stack-br +17:05:05 1000 5800 0.0 0.0 862592 2096 0.06 evolution-calen +17:05:05 1000 18291 0.0 0.0 1327188 178548 4.71 slack +17:05:05 1000 5274 0.0 0.0 48308 4768 0.13 dbus-daemon +17:05:05 1000 6329 0.0 0.0 524028 5988 0.16 update-notifier +17:05:05 1000 5818 0.0 0.0 266700 1660 0.04 gvfs-mtp-volume +17:05:05 0 5829 0.0 0.0 628728 19284 0.51 fwupd +17:05:05 1000 6855 0.0 0.0 442520 2160 0.06 deja-dup-monito +17:05:05 1000 11327 0.0 0.0 368792 1200 0.03 gvfsd-dnssd +17:05:05 999 4810 0.0 0.0 43856 1056 0.03 pmlogger +17:05:05 1000 18465 0.0 0.0 391548 6644 0.18 chrome +17:05:05 113 5154 0.0 0.0 308252 3280 0.09 colord +17:05:05 1000 18641 18.0 0.0 990408 113420 2.99 chrome +17:05:05 1000 5842 0.0 0.0 357636 988 0.03 gvfsd-trash +17:05:05 1000 5633 0.0 0.0 744440 3420 0.09 indicator-sound +17:05:05 122 4821 0.0 0.0 54500 11748 0.31 unbound +17:05:05 1000 5335 0.0 0.0 354736 6456 0.17 ibus-daemon +17:05:05 1000 24868 0.0 0.0 49592 18976 0.5 python +17:05:05 1000 21722 0.0 0.0 897828 130960 3.45 chrome +17:05:05 1000 18420 0.0 0.0 14516 100 0.0 cat +17:05:05 0 18062 0.0 0.0 16120 2204 0.06 dhclient +17:05:05 1000 5343 0.0 0.0 39864 88 0.0 upstart-dbus-br +17:05:05 1000 6023 0.0 0.0 68368 1480 0.04 gconfd-2 +17:05:05 1000 5345 0.0 0.0 39864 112 0.0 upstart-dbus-br +17:05:05 1000 5866 0.0 0.0 888340 1944 0.05 evolution-calen +17:05:05 1000 5671 0.0 0.0 395968 5144 0.14 indicator-appli +17:05:05 1000 5876 0.0 0.0 697644 1644 0.04 evolution-addre +17:05:05 1000 5878 0.0 0.0 1069192 2180 0.06 evolution-calen +17:05:05 1000 5367 0.0 0.0 173608 160 0.0 gpg-agent +17:05:05 0 1031 0.0 0.0 288936 2300 0.06 polkitd +17:05:05 1000 8954 0.0 0.0 782972 2308 0.06 unity-scope-hom +17:05:05 1000 18421 0.0 0.0 14516 72 0.0 cat +17:05:05 65534 5273 0.0 0.0 59936 960 0.03 dnsmasq +17:05:05 1000 5375 0.0 0.0 281592 1072 0.03 gvfsd +17:05:05 1000 25344 0.0 0.0 34036 9512 0.25 bash +17:05:05 1000 5380 0.0 0.0 406860 1104 0.03 gvfsd-fuse +17:05:05 1000 5895 0.0 0.0 846864 2584 0.07 evolution-addre +17:05:05 1000 8969 0.0 0.0 522984 2704 0.07 unity-files-dae +17:05:05 1000 8971 0.0 0.0 340748 2164 0.06 unity-music-dae +17:05:05 100 780 0.0 0.0 102384 664 0.02 systemd-timesyn +17:05:05 1000 5389 0.0 0.0 271332 1284 0.03 ibus-dconf +17:05:05 1000 5395 0.0 0.0 48356 860 0.02 upstart-file-br +17:05:05 1000 5396 0.0 0.0 477908 7124 0.19 ibus-ui-gtk3 +17:05:05 1000 18503 8.0 0.0 1500876 114160 3.01 chrome +17:05:05 1000 5398 0.0 0.0 427552 4172 0.11 ibus-x11 +17:05:05 1000 7130 0.0 0.0 514172 38440 1.01 notify-osd +17:05:05 1000 5806 0.0 0.0 278900 1960 0.05 gvfs-gphoto2-vo +17:05:05 1000 5789 0.0 0.0 264600 860 0.02 gvfs-goa-volume +17:05:05 1000 18224 0.0 0.0 309976 6440 0.17 slack +17:05:05 1000 5414 0.0 0.0 338008 1292 0.03 at-spi-bus-laun +17:05:05 1000 19642 0.0 0.0 423528 42964 1.13 atom +17:05:05 1000 5419 0.0 0.0 43028 1012 0.03 dbus-daemon +17:05:05 1000 18220 0.0 0.0 1543240 77648 2.05 slack +17:05:05 1000 5421 0.0 0.0 206868 1764 0.05 at-spi2-registr +17:05:05 104 814 0.0 0.0 256396 940 0.02 rsyslogd +17:05:05 106 815 0.0 0.0 44388 2920 0.08 dbus-daemon +17:05:05 1000 5946 0.0 0.0 577500 4612 0.12 zeitgeist-datah +17:05:05 1000 5441 0.0 0.0 1061192 12944 0.34 unity-settings- +17:05:05 1000 5442 0.0 0.0 547624 11488 0.3 bamfdaemon +17:05:05 1000 5957 0.0 0.0 410416 3876 0.1 zeitgeist-daemo +17:05:05 1000 18253 0.0 0.0 592588 88844 2.34 slack +17:05:05 0 4937 0.0 0.0 71576 628 0.02 apache2 +17:05:05 33 4940 0.0 0.0 360740 612 0.02 apache2 +17:05:05 33 4941 0.0 0.0 360740 612 0.02 apache2 +17:05:05 1000 5456 0.0 0.0 701124 26084 0.69 hud-service +17:05:05 1000 5459 0.0 0.0 560592 3572 0.09 gnome-session-b +17:05:05 1000 5461 0.0 0.0 643552 25080 0.66 unity-panel-ser +17:05:05 1000 5462 0.0 0.0 1570040 70980 1.87 compiz +17:05:05 0 855 0.0 0.0 456536 5332 0.14 NetworkManager +17:05:05 124 1369 0.0 0.0 301812 76 0.0 postgres +17:05:05 124 1370 0.0 0.0 301812 976 0.03 postgres +17:05:05 124 1371 0.0 0.0 301812 320 0.01 postgres +17:05:05 124 1372 0.0 0.0 302240 1560 0.04 postgres +17:05:05 124 1373 0.0 0.0 156796 176 0.0 postgres +17:05:05 0 862 0.0 0.0 36076 892 0.02 cron +17:05:05 1000 18428 0.0 0.0 367660 6164 0.16 chrome +17:05:05 0 866 0.0 0.0 337320 1332 0.04 ModemManager +17:05:05 1000 19618 0.0 0.0 305616 7108 0.19 atom +17:05:05 0 361 0.0 0.0 32076 3240 0.09 systemd-journal +17:05:05 1000 18459 1.0 0.0 927540 214308 5.65 chrome +17:05:05 0 372 0.0 0.0 94772 0 0.0 lvmetad +17:05:05 0 886 0.0 0.0 4400 868 0.02 acpid +17:05:05 0 888 0.0 0.0 28628 1244 0.03 systemd-logind +17:05:05 0 892 0.0 0.0 26044 504 0.01 atd +17:05:05 0 895 0.0 0.0 282932 1556 0.04 accounts-daemon +17:05:05 0 897 0.0 0.0 173500 1824 0.05 thermald +17:05:05 0 386 0.0 0.0 46192 1512 0.04 systemd-udevd +17:05:05 1000 18411 1.0 0.0 1558800 197716 5.21 chrome +17:05:05 1000 5953 0.0 0.0 4508 0 0.0 sh +17:05:05 109 904 0.0 0.0 374040 2680 0.07 whoopsie +17:05:05 0 1087 0.0 0.0 500060 54124 1.43 Xorg +17:05:05 1000 18498 25.0 0.0 935920 158556 4.18 chrome +17:05:05 111 912 0.0 0.0 44912 1312 0.03 avahi-daemon +17:05:05 0 915 0.0 0.0 231584 3776 0.1 snapd +17:05:05 1000 18508 0.0 0.0 755856 41140 1.08 chrome +17:05:05 1000 19653 0.0 0.0 1426648 248360 6.54 atom +17:05:05 0 1173 0.0 0.0 37236 868 0.02 pmdaroot +17:05:05 1000 18337 0.0 0.0 1297884 188584 4.97 slack +17:05:05 999 1179 0.0 0.0 45656 712 0.02 pmdasimple +17:05:05 1000 5702 0.0 0.0 576604 3804 0.1 unity-fallback- +17:05:05 1000 5964 0.0 0.0 324152 6700 0.18 zeitgeist-fts +17:05:05 1000 18495 0.0 0.0 750732 46724 1.23 chrome +17:05:05 1000 5703 0.0 0.0 429160 3536 0.09 polkit-gnome-au +17:05:05 0 5039 0.0 0.0 230300 1364 0.04 lightdm +17:05:05 1000 11289 0.0 0.0 433748 1192 0.03 gvfsd-network +17:05:05 1000 19614 0.0 0.0 1459168 95140 2.51 atom +17:05:05 1000 5794 0.0 0.0 410680 2088 0.06 gvfs-afc-volume +17:05:05 1000 5620 0.0 0.0 352000 1280 0.03 indicator-messa +17:05:05 1000 23704 0.0 0.0 658444 41880 1.1 gedit +17:05:05 1000 5621 0.0 0.0 414192 848 0.02 indicator-bluet +17:05:05 1000 18581 0.0 0.0 752776 46348 1.22 chrome +17:05:05 1000 5708 0.0 0.0 662884 14044 0.37 nm-applet +17:05:05 0 1186 0.0 0.0 44116 2352 0.06 wpa_supplicant +17:05:05 1000 5709 0.0 0.0 1319872 19560 0.52 gnome-software +17:05:05 118 5072 0.0 0.0 183544 956 0.03 rtkit-daemon +17:05:05 1000 22777 207.0 0.0 1355344 414688 10.93 chrome +17:05:05 0 1175 0.0 0.0 37240 1008 0.03 pmdaxfs +17:05:05 1000 5597 0.0 0.0 195456 1596 0.04 ibus-engine-sim +17:05:05 1000 5600 0.0 0.0 22372 912 0.02 syndaemon +17:05:05 1000 5604 0.0 0.0 581800 5596 0.15 pulseaudio +17:05:05 1000 19431 0.0 0.0 34980 9832 0.26 bash +17:05:05 1000 5608 0.0 0.0 178792 1800 0.05 dconf-service +17:05:05 1000 5628 0.0 0.0 1240056 3188 0.08 indicator-datet +17:05:05 111 1002 0.0 0.0 44788 24 0.0 avahi-daemon +17:05:05 0 1003 0.0 0.0 274828 1572 0.04 cups-browsed +17:05:05 1000 25541 36.0 0.0 37524 3612 0.1 pmlogger +17:05:05 1000 8967 0.0 0.0 591444 8556 0.23 unity-scope-loa +17:05:05 1000 19539 0.0 0.0 949128 168752 4.45 chrome +17:05:05 0 1012 0.0 0.0 19472 976 0.03 irqbalance +17:05:05 0 1013 0.0 0.0 13376 44 0.0 mdadm +17:05:05 1000 5623 0.0 0.0 430636 4544 0.12 indicator-power +17:05:05 1000 18424 0.0 0.0 367660 13336 0.35 chrome +17:05:05 1000 18425 0.0 0.0 142156 4824 0.13 nacl_helper +17:05:05 999 1176 0.0 0.0 45728 1116 0.03 pmdasample +17:05:05 1000 18583 0.0 0.0 799672 61472 1.62 chrome +Timestamp UID PID MinFlt/s MajFlt/s VSize RSS %Mem Command +17:05:06 1000 5632 0.0 0.0 714080 4500 0.12 indicator-keybo +17:05:06 0 1 0.0 0.0 185436 3984 0.1 systemd +17:05:06 1000 5635 0.0 0.0 547032 4168 0.11 indicator-print +17:05:06 0 3624 0.0 0.0 23008 352 0.01 agetty +17:05:06 1000 5681 0.0 0.0 1111676 2592 0.07 evolution-sourc +17:05:06 0 5129 0.0 0.0 354652 5332 0.14 upowerd +17:05:06 1000 5176 0.0 0.0 45380 1492 0.04 systemd +17:05:06 1000 5178 0.0 0.0 63308 396 0.01 (sd-pam +17:05:06 1000 5183 0.0 0.0 286888 3892 0.1 gnome-keyring-d +17:05:06 1000 5185 0.0 0.0 53644 2060 0.05 upstart +17:05:06 1000 5701 0.0 0.0 1119960 51320 1.35 nautilus +17:05:06 1000 5734 0.0 0.0 603428 10284 0.27 artha +17:05:06 1000 18263 0.0 0.0 1141588 96392 2.54 slack +17:05:06 1000 18549 0.0 0.0 785592 58736 1.55 chrome +17:05:06 1000 5750 0.0 0.0 291832 344 0.01 redshift +17:05:06 1000 18556 0.0 0.0 752784 42032 1.11 chrome +17:05:06 123 5761 0.0 0.0 371156 7024 0.19 geoclue +17:05:06 1000 5637 0.0 0.0 828876 1620 0.04 indicator-sessi +17:05:06 1000 11395 0.0 0.0 193180 1600 0.04 gvfsd-metadata +17:05:06 1000 5767 0.0 0.0 292512 2844 0.07 gvfs-udisks2-vo +17:05:06 1000 18568 0.0 0.0 774296 51944 1.37 chrome +17:05:06 1000 18569 7.0 0.0 776164 52508 1.38 chrome +17:05:06 1000 24343 0.0 0.0 893736 51208 1.35 atom +17:05:06 0 5774 0.0 0.0 433620 5396 0.14 udisksd +17:05:06 999 1171 47.0 0.0 54528 2084 0.05 pmcd +17:05:06 1000 1174 285.0 0.0 46708 2708 0.07 pmdaproc +17:05:06 1000 5272 0.0 0.0 39928 1152 0.03 upstart-udev-br +17:05:06 0 1177 0.0 0.0 37444 712 0.02 pmdalinux +17:05:06 124 1178 0.0 0.0 301812 2852 0.08 postgres +17:05:06 0 1051 0.0 0.0 350408 1616 0.04 lightdm +17:05:06 1000 19424 0.0 0.0 661348 24460 0.64 gnome-terminal- +17:05:06 1000 5286 0.0 0.0 93416 2656 0.07 window-stack-br +17:05:06 1000 5800 0.0 0.0 862592 2096 0.06 evolution-calen +17:05:06 1000 18291 0.0 0.0 1327188 178548 4.71 slack +17:05:06 1000 5274 0.0 0.0 48308 4768 0.13 dbus-daemon +17:05:06 1000 6329 0.0 0.0 524028 5988 0.16 update-notifier +17:05:06 1000 5818 0.0 0.0 266700 1660 0.04 gvfs-mtp-volume +17:05:06 0 5829 0.0 0.0 628728 19284 0.51 fwupd +17:05:06 1000 6855 0.0 0.0 442520 2160 0.06 deja-dup-monito +17:05:06 1000 11327 0.0 0.0 368792 1200 0.03 gvfsd-dnssd +17:05:06 999 4810 0.0 0.0 43856 1056 0.03 pmlogger +17:05:06 1000 18465 0.0 0.0 391548 6644 0.18 chrome +17:05:06 113 5154 0.0 0.0 308252 3280 0.09 colord +17:05:06 1000 18641 17.0 0.0 990408 113420 2.99 chrome +17:05:06 1000 5842 0.0 0.0 357636 988 0.03 gvfsd-trash +17:05:06 1000 5633 0.0 0.0 744440 3420 0.09 indicator-sound +17:05:06 122 4821 0.0 0.0 54500 11748 0.31 unbound +17:05:06 1000 5335 0.0 0.0 354736 6456 0.17 ibus-daemon +17:05:06 1000 24868 0.0 0.0 49592 18976 0.5 python +17:05:06 1000 21722 0.0 0.0 897828 130960 3.45 chrome +17:05:06 1000 18420 0.0 0.0 14516 100 0.0 cat +17:05:06 0 18062 0.0 0.0 16120 2204 0.06 dhclient +17:05:06 1000 5343 0.0 0.0 39864 88 0.0 upstart-dbus-br +17:05:06 1000 6023 0.0 0.0 68368 1480 0.04 gconfd-2 +17:05:06 1000 5345 0.0 0.0 39864 112 0.0 upstart-dbus-br +17:05:06 1000 5866 0.0 0.0 888340 1944 0.05 evolution-calen +17:05:06 1000 5671 0.0 0.0 395968 5144 0.14 indicator-appli +17:05:06 1000 5876 0.0 0.0 697644 1644 0.04 evolution-addre +17:05:06 1000 5878 0.0 0.0 1069192 2180 0.06 evolution-calen +17:05:06 1000 5367 0.0 0.0 173608 160 0.0 gpg-agent +17:05:06 0 1031 0.0 0.0 288936 2300 0.06 polkitd +17:05:06 1000 8954 0.0 0.0 782972 2308 0.06 unity-scope-hom +17:05:06 1000 18421 0.0 0.0 14516 72 0.0 cat +17:05:06 65534 5273 0.0 0.0 59936 960 0.03 dnsmasq +17:05:06 1000 5375 0.0 0.0 281592 1072 0.03 gvfsd +17:05:06 1000 25344 0.0 0.0 34036 9512 0.25 bash +17:05:06 1000 5380 0.0 0.0 406860 1104 0.03 gvfsd-fuse +17:05:06 1000 5895 0.0 0.0 846864 2584 0.07 evolution-addre +17:05:06 1000 8969 0.0 0.0 522984 2704 0.07 unity-files-dae +17:05:06 1000 8971 0.0 0.0 340748 2164 0.06 unity-music-dae +17:05:06 100 780 0.0 0.0 102384 664 0.02 systemd-timesyn +17:05:06 1000 5389 0.0 0.0 271332 1284 0.03 ibus-dconf +17:05:06 1000 5395 0.0 0.0 48356 860 0.02 upstart-file-br +17:05:06 1000 5396 0.0 0.0 477908 7124 0.19 ibus-ui-gtk3 +17:05:06 1000 18503 0.0 0.0 1500876 114160 3.01 chrome +17:05:06 1000 5398 0.0 0.0 427552 4172 0.11 ibus-x11 +17:05:06 1000 7130 0.0 0.0 514172 38440 1.01 notify-osd +17:05:06 1000 5806 0.0 0.0 278900 1960 0.05 gvfs-gphoto2-vo +17:05:06 1000 5789 0.0 0.0 264600 860 0.02 gvfs-goa-volume +17:05:06 1000 18224 0.0 0.0 309976 6440 0.17 slack +17:05:06 1000 5414 0.0 0.0 338008 1292 0.03 at-spi-bus-laun +17:05:06 1000 19642 0.0 0.0 423528 42964 1.13 atom +17:05:06 1000 5419 0.0 0.0 43028 1012 0.03 dbus-daemon +17:05:06 1000 18220 0.0 0.0 1543240 77648 2.05 slack +17:05:06 1000 5421 0.0 0.0 206868 1764 0.05 at-spi2-registr +17:05:06 104 814 0.0 0.0 256396 940 0.02 rsyslogd +17:05:06 106 815 0.0 0.0 44388 2920 0.08 dbus-daemon +17:05:06 1000 5946 0.0 0.0 577500 4612 0.12 zeitgeist-datah +17:05:06 1000 5441 0.0 0.0 1061192 12944 0.34 unity-settings- +17:05:06 1000 5442 0.0 0.0 547624 11488 0.3 bamfdaemon +17:05:06 1000 5957 0.0 0.0 410416 3876 0.1 zeitgeist-daemo +17:05:06 1000 18253 0.0 0.0 592588 88844 2.34 slack +17:05:06 0 4937 0.0 0.0 71576 628 0.02 apache2 +17:05:06 33 4940 0.0 0.0 360740 612 0.02 apache2 +17:05:06 33 4941 0.0 0.0 360740 612 0.02 apache2 +17:05:06 1000 5456 8.0 0.0 701124 26084 0.69 hud-service +17:05:06 1000 5459 0.0 0.0 560592 3572 0.09 gnome-session-b +17:05:06 1000 5461 0.0 0.0 643552 25080 0.66 unity-panel-ser +17:05:06 1000 5462 0.0 0.0 1570040 70980 1.87 compiz +17:05:06 0 855 0.0 0.0 456536 5332 0.14 NetworkManager +17:05:06 124 1369 0.0 0.0 301812 76 0.0 postgres +17:05:06 124 1370 0.0 0.0 301812 976 0.03 postgres +17:05:06 124 1371 0.0 0.0 301812 320 0.01 postgres +17:05:06 124 1372 0.0 0.0 302240 1560 0.04 postgres +17:05:06 124 1373 0.0 0.0 156796 176 0.0 postgres +17:05:06 0 862 0.0 0.0 36076 892 0.02 cron +17:05:06 1000 18428 0.0 0.0 367660 6164 0.16 chrome +17:05:06 0 866 0.0 0.0 337320 1332 0.04 ModemManager +17:05:06 1000 19618 0.0 0.0 305616 7108 0.19 atom +17:05:06 0 361 0.0 0.0 32076 3240 0.09 systemd-journal +17:05:06 1000 18459 0.0 0.0 926468 213492 5.63 chrome +17:05:06 0 372 0.0 0.0 94772 0 0.0 lvmetad +17:05:06 0 886 0.0 0.0 4400 868 0.02 acpid +17:05:06 0 888 0.0 0.0 28628 1244 0.03 systemd-logind +17:05:06 0 892 0.0 0.0 26044 504 0.01 atd +17:05:06 0 895 0.0 0.0 282932 1556 0.04 accounts-daemon +17:05:06 0 897 0.0 0.0 173500 1824 0.05 thermald +17:05:06 0 386 0.0 0.0 46192 1512 0.04 systemd-udevd +17:05:06 1000 18411 40.0 0.0 1558800 197720 5.21 chrome +17:05:06 1000 5953 0.0 0.0 4508 0 0.0 sh +17:05:06 109 904 0.0 0.0 374040 2680 0.07 whoopsie +17:05:06 0 1087 0.0 0.0 500060 54124 1.43 Xorg +17:05:06 1000 18498 1.0 0.0 935920 157592 4.15 chrome +17:05:06 111 912 0.0 0.0 44912 1312 0.03 avahi-daemon +17:05:06 0 915 0.0 0.0 231584 3776 0.1 snapd +17:05:06 1000 18508 0.0 0.0 755856 41140 1.08 chrome +17:05:06 1000 19653 0.0 0.0 1426648 248360 6.54 atom +17:05:06 0 1173 0.0 0.0 37236 868 0.02 pmdaroot +17:05:06 1000 18337 0.0 0.0 1297884 188584 4.97 slack +17:05:06 999 1179 0.0 0.0 45656 712 0.02 pmdasimple +17:05:06 1000 5702 0.0 0.0 576604 3804 0.1 unity-fallback- +17:05:06 1000 5964 0.0 0.0 324152 6700 0.18 zeitgeist-fts +17:05:06 1000 18495 0.0 0.0 750732 46724 1.23 chrome +17:05:06 1000 5703 0.0 0.0 429160 3536 0.09 polkit-gnome-au +17:05:06 0 5039 0.0 0.0 230300 1364 0.04 lightdm +17:05:06 1000 11289 0.0 0.0 433748 1192 0.03 gvfsd-network +17:05:06 1000 19614 0.0 0.0 1459168 95140 2.51 atom +17:05:06 1000 5794 0.0 0.0 410680 2088 0.06 gvfs-afc-volume +17:05:06 1000 5620 0.0 0.0 352000 1280 0.03 indicator-messa +17:05:06 1000 23704 0.0 0.0 658444 41880 1.1 gedit +17:05:06 1000 5621 0.0 0.0 414192 848 0.02 indicator-bluet +17:05:06 1000 18581 0.0 0.0 752776 46348 1.22 chrome +17:05:06 1000 5708 0.0 0.0 662884 14044 0.37 nm-applet +17:05:06 0 1186 0.0 0.0 44116 2352 0.06 wpa_supplicant +17:05:06 1000 5709 0.0 0.0 1319872 19560 0.52 gnome-software +17:05:06 118 5072 0.0 0.0 183544 956 0.03 rtkit-daemon +17:05:06 1000 22777 131.0 0.0 1354944 414452 10.92 chrome +17:05:06 0 1175 0.0 0.0 37240 1008 0.03 pmdaxfs +17:05:06 1000 5597 0.0 0.0 195456 1596 0.04 ibus-engine-sim +17:05:06 1000 5600 0.0 0.0 22372 912 0.02 syndaemon +17:05:06 1000 5604 0.0 0.0 581800 5596 0.15 pulseaudio +17:05:06 1000 19431 0.0 0.0 34980 9832 0.26 bash +17:05:06 1000 5608 0.0 0.0 178792 1800 0.05 dconf-service +17:05:06 1000 5628 0.0 0.0 1240056 3188 0.08 indicator-datet +17:05:06 111 1002 0.0 0.0 44788 24 0.0 avahi-daemon +17:05:06 0 1003 0.0 0.0 274828 1572 0.04 cups-browsed +17:05:06 1000 25541 1.0 0.0 37728 3612 0.1 pmlogger +17:05:06 1000 8967 0.0 0.0 591444 8556 0.23 unity-scope-loa +17:05:06 1000 19539 102.0 0.0 949128 168752 4.45 chrome +17:05:06 0 1012 0.0 0.0 19472 976 0.03 irqbalance +17:05:06 0 1013 0.0 0.0 13376 44 0.0 mdadm +17:05:06 1000 5623 0.0 0.0 430636 4544 0.12 indicator-power +17:05:06 1000 18424 0.0 0.0 367660 13336 0.35 chrome +17:05:06 1000 18425 0.0 0.0 142156 4824 0.13 nacl_helper +17:05:06 999 1176 0.0 0.0 45728 1116 0.03 pmdasample +17:05:06 1000 18583 0.0 0.0 799672 61472 1.62 chrome + +=== pcp-pidstat stack utilization +Linux ram-Lenovo 4.4.0-28-generic #47-Ubuntu SMP Fri Jun 24 10:09:13 UTC 2016 x86_64 (4 CPU) +Timestamp UID PID StkSize Command +17:05:04 1000 5632 136 indicator-keybo +17:05:04 0 1 136 systemd +17:05:04 1000 5635 136 indicator-print +17:05:04 0 3624 136 agetty +17:05:04 1000 5681 136 evolution-sourc +17:05:04 0 5129 136 upowerd +17:05:04 1000 5176 136 systemd +17:05:04 1000 5178 136 (sd-pam +17:05:04 1000 5183 136 gnome-keyring-d +17:05:04 1000 5185 136 upstart +17:05:04 1000 5701 136 nautilus +17:05:04 1000 5734 136 artha +17:05:04 1000 18263 220 slack +17:05:04 1000 18549 136 chrome +17:05:04 1000 5750 136 redshift +17:05:04 1000 18556 136 chrome +17:05:04 123 5761 136 geoclue +17:05:04 1000 5637 136 indicator-sessi +17:05:04 1000 11395 136 gvfsd-metadata +17:05:04 1000 5767 136 gvfs-udisks2-vo +17:05:04 1000 18568 136 chrome +17:05:04 1000 18569 136 chrome +17:05:04 1000 24343 136 atom +17:05:04 0 5774 136 udisksd +17:05:04 999 1171 136 pmcd +17:05:04 1000 1174 136 pmdaproc +17:05:04 1000 5272 136 upstart-udev-br +17:05:04 0 1177 136 pmdalinux +17:05:04 124 1178 148 postgres +17:05:04 0 1051 136 lightdm +17:05:04 1000 19424 136 gnome-terminal- +17:05:04 1000 5286 136 window-stack-br +17:05:04 1000 5800 136 evolution-calen +17:05:04 1000 18291 220 slack +17:05:04 1000 5274 136 dbus-daemon +17:05:04 1000 6329 136 update-notifier +17:05:04 1000 5818 136 gvfs-mtp-volume +17:05:04 0 5829 136 fwupd +17:05:04 1000 6855 136 deja-dup-monito +17:05:04 1000 11327 136 gvfsd-dnssd +17:05:04 999 4810 136 pmlogger +17:05:04 1000 18465 140 chrome +17:05:04 113 5154 136 colord +17:05:04 1000 18641 136 chrome +17:05:04 1000 5842 136 gvfsd-trash +17:05:04 1000 5633 136 indicator-sound +17:05:04 122 4821 160 unbound +17:05:04 1000 5335 136 ibus-daemon +17:05:04 1000 24868 136 python +17:05:04 1000 21722 136 chrome +17:05:04 1000 18420 136 cat +17:05:04 0 18062 136 dhclient +17:05:04 1000 5343 136 upstart-dbus-br +17:05:04 1000 6023 136 gconfd-2 +17:05:04 1000 5345 136 upstart-dbus-br +17:05:04 1000 5866 136 evolution-calen +17:05:04 1000 5671 136 indicator-appli +17:05:04 1000 5876 136 evolution-addre +17:05:04 1000 5878 136 evolution-calen +17:05:04 1000 5367 136 gpg-agent +17:05:04 0 1031 136 polkitd +17:05:04 1000 8954 136 unity-scope-hom +17:05:04 1000 18421 136 cat +17:05:04 65534 5273 136 dnsmasq +17:05:04 1000 5375 136 gvfsd +17:05:04 1000 25344 136 bash +17:05:04 1000 5380 136 gvfsd-fuse +17:05:04 1000 5895 136 evolution-addre +17:05:04 1000 8969 136 unity-files-dae +17:05:04 1000 8971 136 unity-music-dae +17:05:04 100 780 136 systemd-timesyn +17:05:04 1000 5389 136 ibus-dconf +17:05:04 1000 5395 136 upstart-file-br +17:05:04 1000 5396 136 ibus-ui-gtk3 +17:05:04 1000 18503 136 chrome +17:05:04 1000 5398 136 ibus-x11 +17:05:04 1000 7130 136 notify-osd +17:05:04 1000 5806 136 gvfs-gphoto2-vo +17:05:04 1000 5789 136 gvfs-goa-volume +17:05:04 1000 18224 136 slack +17:05:04 1000 5414 136 at-spi-bus-laun +17:05:04 1000 19642 136 atom +17:05:04 1000 5419 136 dbus-daemon +17:05:04 1000 18220 136 slack +17:05:04 1000 5421 136 at-spi2-registr +17:05:04 104 814 136 rsyslogd +17:05:04 106 815 136 dbus-daemon +17:05:04 1000 5946 136 zeitgeist-datah +17:05:04 1000 5441 136 unity-settings- +17:05:04 1000 5442 136 bamfdaemon +17:05:04 1000 5957 136 zeitgeist-daemo +17:05:04 1000 18253 136 slack +17:05:04 0 4937 136 apache2 +17:05:04 33 4940 136 apache2 +17:05:04 33 4941 136 apache2 +17:05:04 1000 5456 136 hud-service +17:05:04 1000 5459 136 gnome-session-b +17:05:04 1000 5461 136 unity-panel-ser +17:05:04 1000 5462 156 compiz +17:05:04 0 855 136 NetworkManager +17:05:04 124 1369 148 postgres +17:05:04 124 1370 148 postgres +17:05:04 124 1371 148 postgres +17:05:04 124 1372 148 postgres +17:05:04 124 1373 148 postgres +17:05:04 0 862 136 cron +17:05:04 1000 18428 136 chrome +17:05:04 0 866 136 ModemManager +17:05:04 1000 19618 136 atom +17:05:04 0 361 136 systemd-journal +17:05:04 1000 18459 140 chrome +17:05:04 0 372 136 lvmetad +17:05:04 0 886 136 acpid +17:05:04 0 888 136 systemd-logind +17:05:04 0 892 136 atd +17:05:04 0 895 136 accounts-daemon +17:05:04 0 897 136 thermald +17:05:04 0 386 136 systemd-udevd +17:05:04 1000 18411 136 chrome +17:05:04 1000 5953 136 sh +17:05:04 109 904 136 whoopsie +17:05:04 0 1087 272 Xorg +17:05:04 1000 18498 136 chrome +17:05:04 111 912 136 avahi-daemon +17:05:04 0 915 136 snapd +17:05:04 1000 18508 136 chrome +17:05:04 1000 19653 136 atom +17:05:04 0 1173 136 pmdaroot +17:05:04 1000 18337 220 slack +17:05:04 999 1179 136 pmdasimple +17:05:04 1000 5702 136 unity-fallback- +17:05:04 1000 5964 136 zeitgeist-fts +17:05:04 1000 18495 136 chrome +17:05:04 1000 5703 136 polkit-gnome-au +17:05:04 0 5039 136 lightdm +17:05:04 1000 11289 136 gvfsd-network +17:05:04 1000 19614 136 atom +17:05:04 1000 5794 136 gvfs-afc-volume +17:05:04 1000 5620 136 indicator-messa +17:05:04 1000 23704 136 gedit +17:05:04 1000 5621 136 indicator-bluet +17:05:04 1000 18581 136 chrome +17:05:04 1000 5708 136 nm-applet +17:05:04 0 1186 136 wpa_supplicant +17:05:04 1000 5709 136 gnome-software +17:05:04 118 5072 136 rtkit-daemon +17:05:04 1000 22777 136 chrome +17:05:04 0 1175 136 pmdaxfs +17:05:04 1000 5597 136 ibus-engine-sim +17:05:04 1000 5600 136 syndaemon +17:05:04 1000 5604 136 pulseaudio +17:05:04 1000 19431 136 bash +17:05:04 1000 5608 136 dconf-service +17:05:04 1000 5628 136 indicator-datet +17:05:04 111 1002 136 avahi-daemon +17:05:04 0 1003 136 cups-browsed +17:05:04 1000 25541 140 pmlogger +17:05:04 1000 8967 136 unity-scope-loa +17:05:04 1000 19539 136 chrome +17:05:04 0 1012 136 irqbalance +17:05:04 0 1013 136 mdadm +17:05:04 1000 5623 136 indicator-power +17:05:04 1000 18424 136 chrome +17:05:04 1000 18425 136 nacl_helper +17:05:04 999 1176 136 pmdasample +17:05:04 1000 18583 136 chrome +Timestamp UID PID StkSize Command +17:05:05 1000 5632 136 indicator-keybo +17:05:05 0 1 136 systemd +17:05:05 1000 5635 136 indicator-print +17:05:05 0 3624 136 agetty +17:05:05 1000 5681 136 evolution-sourc +17:05:05 0 5129 136 upowerd +17:05:05 1000 5176 136 systemd +17:05:05 1000 5178 136 (sd-pam +17:05:05 1000 5183 136 gnome-keyring-d +17:05:05 1000 5185 136 upstart +17:05:05 1000 5701 136 nautilus +17:05:05 1000 5734 136 artha +17:05:05 1000 18263 220 slack +17:05:05 1000 18549 136 chrome +17:05:05 1000 5750 136 redshift +17:05:05 1000 18556 136 chrome +17:05:05 123 5761 136 geoclue +17:05:05 1000 5637 136 indicator-sessi +17:05:05 1000 11395 136 gvfsd-metadata +17:05:05 1000 5767 136 gvfs-udisks2-vo +17:05:05 1000 18568 136 chrome +17:05:05 1000 18569 136 chrome +17:05:05 1000 24343 136 atom +17:05:05 0 5774 136 udisksd +17:05:05 999 1171 136 pmcd +17:05:05 1000 1174 136 pmdaproc +17:05:05 1000 5272 136 upstart-udev-br +17:05:05 0 1177 136 pmdalinux +17:05:05 124 1178 148 postgres +17:05:05 0 1051 136 lightdm +17:05:05 1000 19424 136 gnome-terminal- +17:05:05 1000 5286 136 window-stack-br +17:05:05 1000 5800 136 evolution-calen +17:05:05 1000 18291 220 slack +17:05:05 1000 5274 136 dbus-daemon +17:05:05 1000 6329 136 update-notifier +17:05:05 1000 5818 136 gvfs-mtp-volume +17:05:05 0 5829 136 fwupd +17:05:05 1000 6855 136 deja-dup-monito +17:05:05 1000 11327 136 gvfsd-dnssd +17:05:05 999 4810 136 pmlogger +17:05:05 1000 18465 140 chrome +17:05:05 113 5154 136 colord +17:05:05 1000 18641 136 chrome +17:05:05 1000 5842 136 gvfsd-trash +17:05:05 1000 5633 136 indicator-sound +17:05:05 122 4821 160 unbound +17:05:05 1000 5335 136 ibus-daemon +17:05:05 1000 24868 136 python +17:05:05 1000 21722 136 chrome +17:05:05 1000 18420 136 cat +17:05:05 0 18062 136 dhclient +17:05:05 1000 5343 136 upstart-dbus-br +17:05:05 1000 6023 136 gconfd-2 +17:05:05 1000 5345 136 upstart-dbus-br +17:05:05 1000 5866 136 evolution-calen +17:05:05 1000 5671 136 indicator-appli +17:05:05 1000 5876 136 evolution-addre +17:05:05 1000 5878 136 evolution-calen +17:05:05 1000 5367 136 gpg-agent +17:05:05 0 1031 136 polkitd +17:05:05 1000 8954 136 unity-scope-hom +17:05:05 1000 18421 136 cat +17:05:05 65534 5273 136 dnsmasq +17:05:05 1000 5375 136 gvfsd +17:05:05 1000 25344 136 bash +17:05:05 1000 5380 136 gvfsd-fuse +17:05:05 1000 5895 136 evolution-addre +17:05:05 1000 8969 136 unity-files-dae +17:05:05 1000 8971 136 unity-music-dae +17:05:05 100 780 136 systemd-timesyn +17:05:05 1000 5389 136 ibus-dconf +17:05:05 1000 5395 136 upstart-file-br +17:05:05 1000 5396 136 ibus-ui-gtk3 +17:05:05 1000 18503 136 chrome +17:05:05 1000 5398 136 ibus-x11 +17:05:05 1000 7130 136 notify-osd +17:05:05 1000 5806 136 gvfs-gphoto2-vo +17:05:05 1000 5789 136 gvfs-goa-volume +17:05:05 1000 18224 136 slack +17:05:05 1000 5414 136 at-spi-bus-laun +17:05:05 1000 19642 136 atom +17:05:05 1000 5419 136 dbus-daemon +17:05:05 1000 18220 136 slack +17:05:05 1000 5421 136 at-spi2-registr +17:05:05 104 814 136 rsyslogd +17:05:05 106 815 136 dbus-daemon +17:05:05 1000 5946 136 zeitgeist-datah +17:05:05 1000 5441 136 unity-settings- +17:05:05 1000 5442 136 bamfdaemon +17:05:05 1000 5957 136 zeitgeist-daemo +17:05:05 1000 18253 136 slack +17:05:05 0 4937 136 apache2 +17:05:05 33 4940 136 apache2 +17:05:05 33 4941 136 apache2 +17:05:05 1000 5456 136 hud-service +17:05:05 1000 5459 136 gnome-session-b +17:05:05 1000 5461 136 unity-panel-ser +17:05:05 1000 5462 156 compiz +17:05:05 0 855 136 NetworkManager +17:05:05 124 1369 148 postgres +17:05:05 124 1370 148 postgres +17:05:05 124 1371 148 postgres +17:05:05 124 1372 148 postgres +17:05:05 124 1373 148 postgres +17:05:05 0 862 136 cron +17:05:05 1000 18428 136 chrome +17:05:05 0 866 136 ModemManager +17:05:05 1000 19618 136 atom +17:05:05 0 361 136 systemd-journal +17:05:05 1000 18459 140 chrome +17:05:05 0 372 136 lvmetad +17:05:05 0 886 136 acpid +17:05:05 0 888 136 systemd-logind +17:05:05 0 892 136 atd +17:05:05 0 895 136 accounts-daemon +17:05:05 0 897 136 thermald +17:05:05 0 386 136 systemd-udevd +17:05:05 1000 18411 136 chrome +17:05:05 1000 5953 136 sh +17:05:05 109 904 136 whoopsie +17:05:05 0 1087 272 Xorg +17:05:05 1000 18498 136 chrome +17:05:05 111 912 136 avahi-daemon +17:05:05 0 915 136 snapd +17:05:05 1000 18508 136 chrome +17:05:05 1000 19653 136 atom +17:05:05 0 1173 136 pmdaroot +17:05:05 1000 18337 220 slack +17:05:05 999 1179 136 pmdasimple +17:05:05 1000 5702 136 unity-fallback- +17:05:05 1000 5964 136 zeitgeist-fts +17:05:05 1000 18495 136 chrome +17:05:05 1000 5703 136 polkit-gnome-au +17:05:05 0 5039 136 lightdm +17:05:05 1000 11289 136 gvfsd-network +17:05:05 1000 19614 136 atom +17:05:05 1000 5794 136 gvfs-afc-volume +17:05:05 1000 5620 136 indicator-messa +17:05:05 1000 23704 136 gedit +17:05:05 1000 5621 136 indicator-bluet +17:05:05 1000 18581 136 chrome +17:05:05 1000 5708 136 nm-applet +17:05:05 0 1186 136 wpa_supplicant +17:05:05 1000 5709 136 gnome-software +17:05:05 118 5072 136 rtkit-daemon +17:05:05 1000 22777 136 chrome +17:05:05 0 1175 136 pmdaxfs +17:05:05 1000 5597 136 ibus-engine-sim +17:05:05 1000 5600 136 syndaemon +17:05:05 1000 5604 136 pulseaudio +17:05:05 1000 19431 136 bash +17:05:05 1000 5608 136 dconf-service +17:05:05 1000 5628 136 indicator-datet +17:05:05 111 1002 136 avahi-daemon +17:05:05 0 1003 136 cups-browsed +17:05:05 1000 25541 140 pmlogger +17:05:05 1000 8967 136 unity-scope-loa +17:05:05 1000 19539 136 chrome +17:05:05 0 1012 136 irqbalance +17:05:05 0 1013 136 mdadm +17:05:05 1000 5623 136 indicator-power +17:05:05 1000 18424 136 chrome +17:05:05 1000 18425 136 nacl_helper +17:05:05 999 1176 136 pmdasample +17:05:05 1000 18583 136 chrome +Timestamp UID PID StkSize Command +17:05:06 1000 5632 136 indicator-keybo +17:05:06 0 1 136 systemd +17:05:06 1000 5635 136 indicator-print +17:05:06 0 3624 136 agetty +17:05:06 1000 5681 136 evolution-sourc +17:05:06 0 5129 136 upowerd +17:05:06 1000 5176 136 systemd +17:05:06 1000 5178 136 (sd-pam +17:05:06 1000 5183 136 gnome-keyring-d +17:05:06 1000 5185 136 upstart +17:05:06 1000 5701 136 nautilus +17:05:06 1000 5734 136 artha +17:05:06 1000 18263 220 slack +17:05:06 1000 18549 136 chrome +17:05:06 1000 5750 136 redshift +17:05:06 1000 18556 136 chrome +17:05:06 123 5761 136 geoclue +17:05:06 1000 5637 136 indicator-sessi +17:05:06 1000 11395 136 gvfsd-metadata +17:05:06 1000 5767 136 gvfs-udisks2-vo +17:05:06 1000 18568 136 chrome +17:05:06 1000 18569 136 chrome +17:05:06 1000 24343 136 atom +17:05:06 0 5774 136 udisksd +17:05:06 999 1171 136 pmcd +17:05:06 1000 1174 136 pmdaproc +17:05:06 1000 5272 136 upstart-udev-br +17:05:06 0 1177 136 pmdalinux +17:05:06 124 1178 148 postgres +17:05:06 0 1051 136 lightdm +17:05:06 1000 19424 136 gnome-terminal- +17:05:06 1000 5286 136 window-stack-br +17:05:06 1000 5800 136 evolution-calen +17:05:06 1000 18291 220 slack +17:05:06 1000 5274 136 dbus-daemon +17:05:06 1000 6329 136 update-notifier +17:05:06 1000 5818 136 gvfs-mtp-volume +17:05:06 0 5829 136 fwupd +17:05:06 1000 6855 136 deja-dup-monito +17:05:06 1000 11327 136 gvfsd-dnssd +17:05:06 999 4810 136 pmlogger +17:05:06 1000 18465 140 chrome +17:05:06 113 5154 136 colord +17:05:06 1000 18641 136 chrome +17:05:06 1000 5842 136 gvfsd-trash +17:05:06 1000 5633 136 indicator-sound +17:05:06 122 4821 160 unbound +17:05:06 1000 5335 136 ibus-daemon +17:05:06 1000 24868 136 python +17:05:06 1000 21722 136 chrome +17:05:06 1000 18420 136 cat +17:05:06 0 18062 136 dhclient +17:05:06 1000 5343 136 upstart-dbus-br +17:05:06 1000 6023 136 gconfd-2 +17:05:06 1000 5345 136 upstart-dbus-br +17:05:06 1000 5866 136 evolution-calen +17:05:06 1000 5671 136 indicator-appli +17:05:06 1000 5876 136 evolution-addre +17:05:06 1000 5878 136 evolution-calen +17:05:06 1000 5367 136 gpg-agent +17:05:06 0 1031 136 polkitd +17:05:06 1000 8954 136 unity-scope-hom +17:05:06 1000 18421 136 cat +17:05:06 65534 5273 136 dnsmasq +17:05:06 1000 5375 136 gvfsd +17:05:06 1000 25344 136 bash +17:05:06 1000 5380 136 gvfsd-fuse +17:05:06 1000 5895 136 evolution-addre +17:05:06 1000 8969 136 unity-files-dae +17:05:06 1000 8971 136 unity-music-dae +17:05:06 100 780 136 systemd-timesyn +17:05:06 1000 5389 136 ibus-dconf +17:05:06 1000 5395 136 upstart-file-br +17:05:06 1000 5396 136 ibus-ui-gtk3 +17:05:06 1000 18503 136 chrome +17:05:06 1000 5398 136 ibus-x11 +17:05:06 1000 7130 136 notify-osd +17:05:06 1000 5806 136 gvfs-gphoto2-vo +17:05:06 1000 5789 136 gvfs-goa-volume +17:05:06 1000 18224 136 slack +17:05:06 1000 5414 136 at-spi-bus-laun +17:05:06 1000 19642 136 atom +17:05:06 1000 5419 136 dbus-daemon +17:05:06 1000 18220 136 slack +17:05:06 1000 5421 136 at-spi2-registr +17:05:06 104 814 136 rsyslogd +17:05:06 106 815 136 dbus-daemon +17:05:06 1000 5946 136 zeitgeist-datah +17:05:06 1000 5441 136 unity-settings- +17:05:06 1000 5442 136 bamfdaemon +17:05:06 1000 5957 136 zeitgeist-daemo +17:05:06 1000 18253 136 slack +17:05:06 0 4937 136 apache2 +17:05:06 33 4940 136 apache2 +17:05:06 33 4941 136 apache2 +17:05:06 1000 5456 136 hud-service +17:05:06 1000 5459 136 gnome-session-b +17:05:06 1000 5461 136 unity-panel-ser +17:05:06 1000 5462 156 compiz +17:05:06 0 855 136 NetworkManager +17:05:06 124 1369 148 postgres +17:05:06 124 1370 148 postgres +17:05:06 124 1371 148 postgres +17:05:06 124 1372 148 postgres +17:05:06 124 1373 148 postgres +17:05:06 0 862 136 cron +17:05:06 1000 18428 136 chrome +17:05:06 0 866 136 ModemManager +17:05:06 1000 19618 136 atom +17:05:06 0 361 136 systemd-journal +17:05:06 1000 18459 140 chrome +17:05:06 0 372 136 lvmetad +17:05:06 0 886 136 acpid +17:05:06 0 888 136 systemd-logind +17:05:06 0 892 136 atd +17:05:06 0 895 136 accounts-daemon +17:05:06 0 897 136 thermald +17:05:06 0 386 136 systemd-udevd +17:05:06 1000 18411 136 chrome +17:05:06 1000 5953 136 sh +17:05:06 109 904 136 whoopsie +17:05:06 0 1087 272 Xorg +17:05:06 1000 18498 136 chrome +17:05:06 111 912 136 avahi-daemon +17:05:06 0 915 136 snapd +17:05:06 1000 18508 136 chrome +17:05:06 1000 19653 136 atom +17:05:06 0 1173 136 pmdaroot +17:05:06 1000 18337 220 slack +17:05:06 999 1179 136 pmdasimple +17:05:06 1000 5702 136 unity-fallback- +17:05:06 1000 5964 136 zeitgeist-fts +17:05:06 1000 18495 136 chrome +17:05:06 1000 5703 136 polkit-gnome-au +17:05:06 0 5039 136 lightdm +17:05:06 1000 11289 136 gvfsd-network +17:05:06 1000 19614 136 atom +17:05:06 1000 5794 136 gvfs-afc-volume +17:05:06 1000 5620 136 indicator-messa +17:05:06 1000 23704 136 gedit +17:05:06 1000 5621 136 indicator-bluet +17:05:06 1000 18581 136 chrome +17:05:06 1000 5708 136 nm-applet +17:05:06 0 1186 136 wpa_supplicant +17:05:06 1000 5709 136 gnome-software +17:05:06 118 5072 136 rtkit-daemon +17:05:06 1000 22777 136 chrome +17:05:06 0 1175 136 pmdaxfs +17:05:06 1000 5597 136 ibus-engine-sim +17:05:06 1000 5600 136 syndaemon +17:05:06 1000 5604 136 pulseaudio +17:05:06 1000 19431 136 bash +17:05:06 1000 5608 136 dconf-service +17:05:06 1000 5628 136 indicator-datet +17:05:06 111 1002 136 avahi-daemon +17:05:06 0 1003 136 cups-browsed +17:05:06 1000 25541 140 pmlogger +17:05:06 1000 8967 136 unity-scope-loa +17:05:06 1000 19539 136 chrome +17:05:06 0 1012 136 irqbalance +17:05:06 0 1013 136 mdadm +17:05:06 1000 5623 136 indicator-power +17:05:06 1000 18424 136 chrome +17:05:06 1000 18425 136 nacl_helper +17:05:06 999 1176 136 pmdasample +17:05:06 1000 18583 136 chrome diff --git a/qa/archives/pcp-pidstat.0 b/qa/archives/pcp-pidstat.0 new file mode 100644 index 0000000000000000000000000000000000000000..f210cc92e64e85bf1c987b39a2a690aefc6ce2e7 GIT binary patch literal 228608 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 literal 0 HcmV?d00001 diff --git a/qa/archives/pcp-pidstat.index b/qa/archives/pcp-pidstat.index new file mode 100644 index 0000000000000000000000000000000000000000..ab38859ed5b52575227834a007e5c991fe577997 GIT binary patch literal 212 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 u0BEY(kyK({hzu64q&da0q 0 + return True + + def __matches_process_memory_util(self, process): + if self.options.show_process_memory_util: + return process.vsize() > 0 + return True + + def __matches_process_stack_size(self, process): + if self.options.show_process_stack_util: + return process.stack_size() > 0 + return True + +class CpuUsageReporter: + def __init__(self, cpu_usage, process_filter, delta_time, printer, pidstat_options): + self.cpu_usage = cpu_usage + self.process_filter = process_filter + self.printer = printer + self.delta_time = delta_time + self.pidstat_options = pidstat_options + + def print_report(self, timestamp, ncpu): + if self.pidstat_options.show_process_user: + self.printer ("Timestamp\tUName\tPID\tusr\tsystem\tguest\t%CPU\tCPU\tCommand") + else: + self.printer ("Timestamp\tUID\tPID\tusr\tsystem\tguest\t%CPU\tCPU\tCommand") + processes = self.process_filter.filter_processes(self.cpu_usage.get_processes(self.delta_time)) + for process in processes: + user_percent = process.user_percent() + guest_percent = process.guest_percent() + system_percent = process.system_percent() + total_percent = process.total_percent() + + if self.pidstat_options.per_processor_usage and total_percent is not None: + total_percent = float("%.2f"%(total_percent/ncpu)) + + if self.pidstat_options.show_process_user: + self.printer("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (timestamp,process.user_name(),process.pid(),user_percent,system_percent,guest_percent,total_percent,process.cpu_number(),process.process_name())) + else: + self.printer("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s" % (timestamp,process.user_id(),process.pid(),user_percent,system_percent,guest_percent,total_percent,process.cpu_number(),process.process_name())) + +class CpuProcessPrioritiesReporter: + def __init__(self, process_priority, process_filter, printer, pidstat_options): + self.process_priority = process_priority + self.process_filter = process_filter + self.printer = printer + self.pidstat_options = pidstat_options + + def print_report(self, timestamp): + self.printer ("Timestamp\tUID\tPID\tprio\tpolicy\tCommand") + processes = self.process_filter.filter_processes(self.process_priority.get_processes()) + for process in processes: + if self.pidstat_options.show_process_user: + self.printer("%s\t%s\t%s\t%s\t%s\t%s" % (timestamp,process.user_name(),process.pid(),process.priority(),process.policy(),process.process_name())) + else: + self.printer("%s\t%s\t%s\t%s\t%s\t%s" % (timestamp,process.user_id(),process.pid(),process.priority(),process.policy(),process.process_name())) + +class CpuProcessMemoryUtilReporter: + def __init__(self, process_memory_util, process_filter, delta_time, printer, pidstat_options): + self.process_memory_util = process_memory_util + self.process_filter = process_filter + self.printer = printer + self.delta_time = delta_time + self.pidstat_options = pidstat_options + + def print_report(self, timestamp): + self.printer ("Timestamp\tUID\tPID\tMinFlt/s\tMajFlt/s\tVSize\tRSS\t%Mem\tCommand") + processes = self.process_filter.filter_processes(self.process_memory_util.get_processes(self.delta_time)) + for process in processes: + maj_flt = process.majflt() + min_flt = process.minflt() + if self.pidstat_options.show_process_user: + self.printer("%s\t%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\t%s" % (timestamp,process.user_name(),process.pid(),min_flt,maj_flt,process.vsize(),process.rss(),process.mem(),process.process_name())) + else: + self.printer("%s\t%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\t%s" % (timestamp,process.user_id(),process.pid(),min_flt,maj_flt,process.vsize(),process.rss(),process.mem(),process.process_name())) + +class CpuProcessStackUtilReporter: + def __init__(self, process_stack_util, process_filter, printer, pidstat_options): + self.process_stack_util = process_stack_util + self.process_filter = process_filter + self.printer = printer + self.pidstat_options = pidstat_options + + def print_report(self, timestamp): + self.printer ("Timestamp\tUID\tPID\tStkSize\tCommand") + processes = self.process_filter.filter_processes(self.process_stack_util.get_processes()) + for process in processes: + if self.pidstat_options.show_process_user: + self.printer("%s\t%s\t%s\t%s\t%s" % (timestamp,process.user_name(),process.pid(),process.stack_size(),process.process_name())) + else: + self.printer("%s\t%s\t%s\t%s\t%s" % (timestamp,process.user_id(),process.pid(),process.stack_size(),process.process_name())) + +class NoneHandlingPrinterDecorator: + def __init__(self, printer): + self.printer = printer + + def Print(self, args): + new_args = args.replace('None','?') + self.printer.Print(new_args) + + +class PidstatOptions(pmapi.pmOptions): + process_name = None + show_process_memory_util = False + show_process_priority = False + show_process_stack_util = False + per_processor_usage = False + show_process_user = False + filtered_process_user = None + pid_filter = None + pid_list = [] + + def checkOptions(self): + if (self.show_process_priority and self.show_process_memory_util): + print("Error: -R is incompatible with -r") + return False + elif (self.show_process_priority and self.show_process_stack_util): + print("Error: -R is incompatible with -k") + return False + elif(self.show_process_memory_util and self.show_process_stack_util): + print("Error: -r is incompatible with -k") + return False + else: + return True + + def extraOptions(self, opt,optarg, index): + if opt == 'k': + PidstatOptions.show_process_stack_util = True + elif opt == 'r': + PidstatOptions.show_process_memory_util = True + elif opt == 'R': + PidstatOptions.show_process_priority = True + elif opt == 'G': + PidstatOptions.process_name = optarg + elif opt == 'I': + PidstatOptions.per_processor_usage = True + elif opt == 'U': + PidstatOptions.show_process_user = True + PidstatOptions.filtered_process_user = optarg + elif opt == 'P': + if optarg == "ALL" or optarg == "SELF": + PidstatOptions.pid_filter = optarg + else: + PidstatOptions.pid_filter = "ALL" + try: + PidstatOptions.pid_list = map(lambda x:int(x),optarg.split(',')) + except ValueError as e: + print ("Invalid Process Id List: use comma separated pids without whitespaces") + sys.exit(1) + + def __init__(self): + pmapi.pmOptions.__init__(self,"a:s:t:G:IU::P:RrkV?") + self.pmSetOptionCallback(self.extraOptions) + self.pmSetLongOptionHeader("General options") + self.pmSetLongOptionArchive() + self.pmSetLongOptionSamples() + self.pmSetLongOptionInterval() + self.pmSetLongOption("process-name",1,"G","NAME","Select process names using regular expression.") + self.pmSetLongOption("",0,"I","","In SMP environment, show CPU usage per processor.") + self.pmSetLongOption("user-name",2,"U","[USERNAME]","Show real user name of the tasks and optionally filter by user name.") + self.pmSetLongOption("pid-list",1,"P","PID1,PID2.. ","Show stats for specified pids, Use SELF for current process and ALL for all processes.") + self.pmSetLongOption("",0,"R","","Report realtime priority and scheduling policy information.") + self.pmSetLongOption("",0,"r","","Report page faults and memory utilization.") + self.pmSetLongOption("",0,"k","","Report stack utilization.") + self.pmSetLongOptionVersion() + self.pmSetLongOptionHelp() + + +class PidstatReport(pmcc.MetricGroupPrinter): + Machine_info_count = 0 + + def timeStampDelta(self, group): + s = group.timestamp.tv_sec - group.prevTimestamp.tv_sec + u = group.timestamp.tv_usec - group.prevTimestamp.tv_usec + return (s + u / 1000000.0) + + def print_machine_info(self,group): + machine_name = group['pmda.uname'].netValues[0][2] + no_cpu =self.get_ncpu(group) + print("%s\t(%s CPU)" % (machine_name,no_cpu)) + + def get_ncpu(self,group): + return group['hinv.ncpu'].netValues[0][2] + + def report(self,manager): + group = manager['pidstat'] + if group['proc.psinfo.utime'].netPrevValues == None: + # need two fetches to report rate converted counter metrics + return + + if not self.Machine_info_count: + self.print_machine_info(group) + self.Machine_info_count = 1 + + timestamp = group.contextCache.pmCtime(int(group.timestamp)).rstrip().split() + interval_in_seconds = self.timeStampDelta(group) + ncpu = self.get_ncpu(group) + + metric_repository = ReportingMetricRepository(group) + + if(PidstatOptions.show_process_stack_util): + process_stack_util = CpuProcessStackUtil(metric_repository) + process_filter = ProcessFilter(PidstatOptions) + stdout = StdoutPrinter() + printdecorator = NoneHandlingPrinterDecorator(stdout) + report = CpuProcessStackUtilReporter(process_stack_util, process_filter, printdecorator.Print, PidstatOptions) + + report.print_report(timestamp[3]) + elif(PidstatOptions.show_process_memory_util): + process_memory_util = CpuProcessMemoryUtil(metric_repository) + process_filter = ProcessFilter(PidstatOptions) + stdout = StdoutPrinter() + printdecorator = NoneHandlingPrinterDecorator(stdout) + report = CpuProcessMemoryUtilReporter(process_memory_util, process_filter, interval_in_seconds, printdecorator.Print, PidstatOptions) + + report.print_report(timestamp[3]) + elif(PidstatOptions.show_process_priority): + process_priority = CpuProcessPriorities(metric_repository) + process_filter = ProcessFilter(PidstatOptions) + stdout = StdoutPrinter() + printdecorator = NoneHandlingPrinterDecorator(stdout) + report = CpuProcessPrioritiesReporter(process_priority, process_filter, printdecorator.Print, PidstatOptions) + + report.print_report(timestamp[3]) + else: + cpu_usage = CpuUsage(metric_repository) + process_filter = ProcessFilter(PidstatOptions) + stdout = StdoutPrinter() + printdecorator = NoneHandlingPrinterDecorator(stdout) + report = CpuUsageReporter(cpu_usage, process_filter, interval_in_seconds, printdecorator.Print, PidstatOptions) + + report.print_report(timestamp[3],ncpu) + + +if __name__ == "__main__": + try: + opts = PidstatOptions() + manager = pmcc.MetricGroupManager.builder(opts,sys.argv) + if not opts.checkOptions(): + raise pmapi.pmUsageErr + manager['pidstat'] = PIDSTAT_METRICS + manager.printer = PidstatReport() + sts = manager.run() + sys.exit(sts) + except pmapi.pmErr as pmerror: + sys.stderr.write('%s: %s\n' % (pmerror.progname,pmerror.message())) + except pmapi.pmUsageErr as usage: + usage.message() + sys.exit(1) + except KeyboardInterrupt: + pass diff --git a/src/pcp/pidstat/test/cpu_process_memory_util_test.py b/src/pcp/pidstat/test/cpu_process_memory_util_test.py new file mode 100644 index 000000000..244a682a8 --- /dev/null +++ b/src/pcp/pidstat/test/cpu_process_memory_util_test.py @@ -0,0 +1,38 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +from mock import Mock +import mock +import unittest +from pcp_pidstat import CpuProcessMemoryUtil + + +class TestCpuProcessMemoryUtil(unittest.TestCase): + + def current_values_side_effect(self, metric): + if metric == 'proc.psinfo.pid': + return {1: 1, 2: 2, 5: 5, 10: 10} + + def test_get_processes(self): + metric_repository = mock.Mock() + cpu_process_memory_util = CpuProcessMemoryUtil(metric_repository) + metric_repository.current_values = mock.Mock(side_effect=self.current_values_side_effect) + + processes_list = cpu_process_memory_util.get_processes(1.34) + + self.assertEquals(len(processes_list),4) + +if __name__ == '__main__': + unittest.main() diff --git a/src/pcp/pidstat/test/cpu_process_priorities_test.py b/src/pcp/pidstat/test/cpu_process_priorities_test.py new file mode 100644 index 000000000..01bda7f2b --- /dev/null +++ b/src/pcp/pidstat/test/cpu_process_priorities_test.py @@ -0,0 +1,38 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import unittest +from mock import Mock +import mock +from pcp_pidstat import CpuProcessPriorities + + +class TestCpuProcessPriorities(unittest.TestCase): + + def current_values_side_effect(self, metric): + if metric == 'proc.psinfo.pid': + return {1: 1, 2: 2, 5: 5, 10: 10} + + def test_get_processes(self): + metric_repository = mock.Mock() + cpu_process_priorities = CpuProcessPriorities(metric_repository) + metric_repository.current_values = mock.Mock(side_effect=self.current_values_side_effect) + + processes_list = cpu_process_priorities.get_processes() + + self.assertEquals(len(processes_list),4) + +if __name__ == '__main__': + unittest.main() diff --git a/src/pcp/pidstat/test/cpu_process_stack_util_test.py b/src/pcp/pidstat/test/cpu_process_stack_util_test.py new file mode 100644 index 000000000..a2f119e1b --- /dev/null +++ b/src/pcp/pidstat/test/cpu_process_stack_util_test.py @@ -0,0 +1,38 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import unittest +from mock import Mock +import mock +from pcp_pidstat import CpuProcessStackUtil + + +class TestCpuProcessStackUtil(unittest.TestCase): + + def current_values_side_effect(self, metric): + if metric == 'proc.psinfo.pid': + return {1: 1, 2: 2, 5: 5, 10: 10} + + def test_get_processes(self): + metric_repository = mock.Mock() + cpu_process_stack_util = CpuProcessStackUtil(metric_repository) + metric_repository.current_values = mock.Mock(side_effect=self.current_values_side_effect) + + processes_list = cpu_process_stack_util.get_processes() + + self.assertEquals(len(processes_list),4) + +if __name__ == '__main__': + unittest.main() diff --git a/src/pcp/pidstat/test/cpu_usage_reporter_test.py b/src/pcp/pidstat/test/cpu_usage_reporter_test.py new file mode 100644 index 000000000..02b9217c3 --- /dev/null +++ b/src/pcp/pidstat/test/cpu_usage_reporter_test.py @@ -0,0 +1,122 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +from mock import Mock +import unittest +from pcp_pidstat import CpuUsageReporter + +class TestCpuUsageReporter(unittest.TestCase): + def setUp(self): + self.options = Mock( + per_processor_usage = False, + show_process_user = None) + + process_1 = Mock(pid = Mock(return_value = 1), + process_name = Mock(return_value = "process_1"), + user_name = Mock(return_value='pcp'), + user_id = Mock(return_value=1000), + user_percent = Mock(return_value=2.43), + system_percent = Mock(return_value=1.24), + guest_percent = Mock(return_value=0.00), + total_percent = Mock(return_value=3.67), + cpu_number = Mock(return_value=1),) + + self.processes = [process_1] + + def test_print_report_without_filtering(self): + cpu_usage = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuUsageReporter(cpu_usage, process_filter, 1, printer, self.options) + + reporter.print_report(123, 4) + + printer.assert_called_with("123\t1000\t1\t2.43\t1.24\t0.0\t3.67\t1\tprocess_1") + + def test_print_report_with_user_name(self): + self.options.show_process_user = 'pcp' + cpu_usage = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuUsageReporter(cpu_usage, process_filter, 1, printer, self.options) + + reporter.print_report(123, 4) + + printer.assert_called_with("123\tpcp\t1\t2.43\t1.24\t0.0\t3.67\t1\tprocess_1") + + def test_print_report_with_per_processor_usage(self): + self.options.per_processor_usage = True + cpu_usage = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuUsageReporter(cpu_usage, process_filter, 1, printer, self.options) + + reporter.print_report(123, 4) + + printer.assert_called_with("123\t1000\t1\t2.43\t1.24\t0.0\t0.92\t1\tprocess_1") + + def test_print_report_with_user_percent_none(self): + cpu_usage = Mock() + process_filter = Mock() + printer = Mock() + self.processes[0].user_percent = Mock(return_value=None) + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuUsageReporter(cpu_usage, process_filter, 1, printer, self.options) + + reporter.print_report(123, 4) + + printer.assert_called_with("123\t1000\t1\tNone\t1.24\t0.0\t3.67\t1\tprocess_1") + + def test_print_report_with_guest_percent_none(self): + cpu_usage = Mock() + process_filter = Mock() + printer = Mock() + self.processes[0].guest_percent = Mock(return_value=None) + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuUsageReporter(cpu_usage, process_filter, 1, printer, self.options) + + reporter.print_report(123, 4) + + printer.assert_called_with("123\t1000\t1\t2.43\t1.24\tNone\t3.67\t1\tprocess_1") + + def test_print_report_with_system_percent_none(self): + cpu_usage = Mock() + process_filter = Mock() + printer = Mock() + self.processes[0].system_percent = Mock(return_value=None) + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuUsageReporter(cpu_usage, process_filter, 1, printer, self.options) + + reporter.print_report(123, 4) + + printer.assert_called_with("123\t1000\t1\t2.43\tNone\t0.0\t3.67\t1\tprocess_1") + + def test_print_report_with_total_percent_none(self): + cpu_usage = Mock() + process_filter = Mock() + printer = Mock() + self.processes[0].total_percent = Mock(return_value=None) + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuUsageReporter(cpu_usage, process_filter, 1, printer, self.options) + + reporter.print_report(123, 4) + + printer.assert_called_with("123\t1000\t1\t2.43\t1.24\t0.0\tNone\t1\tprocess_1") + +if __name__ == "__main__": + unittest.main() diff --git a/src/pcp/pidstat/test/cpu_usage_test.py b/src/pcp/pidstat/test/cpu_usage_test.py new file mode 100644 index 000000000..b485f8092 --- /dev/null +++ b/src/pcp/pidstat/test/cpu_usage_test.py @@ -0,0 +1,38 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import unittest +from mock import Mock +import mock +from pcp_pidstat import CpuUsage + + +class TestUserCpuUsage(unittest.TestCase): + + def current_values_side_effect(self, metric): + if metric == 'proc.psinfo.pid': + return {1: 1, 2: 2, 5: 5, 10: 10} + + def test_get_processes(self): + metric_repository = mock.Mock() + cpu_usage = CpuUsage(metric_repository) + metric_repository.current_values = mock.Mock(side_effect=self.current_values_side_effect) + + processes_list = cpu_usage.get_processes(1.34) + + self.assertEquals(len(processes_list),4) + +if __name__ == '__main__': + unittest.main() diff --git a/src/pcp/pidstat/test/metric_repository_test.py b/src/pcp/pidstat/test/metric_repository_test.py new file mode 100644 index 000000000..c567043f7 --- /dev/null +++ b/src/pcp/pidstat/test/metric_repository_test.py @@ -0,0 +1,151 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import unittest +from mock import Mock,MagicMock +import mock +from pcp_pidstat import ReportingMetricRepository + +class ReportingMetricRepositoryTest(unittest.TestCase): + + def test_returns_the_current_value_for_a_metric_that_has_instances(self): + utime_mock = Mock( + netValues = [(Mock(inst=111),'dummyprocess',12345)], + netPrevValues = [(Mock(inst=111),'dummyprocess',12354)] + ) + group = {'proc.psinfo.utime':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.current_value('proc.psinfo.utime',111) + + self.assertEquals(c_utime,12345) + + def test_returns_the_current_value_for_a_metric_that_has_no_instances(self): + utime_mock = Mock( + netValues = [('NULL',None,12345)], + netPrevValues = [('NULL',None,12354)] + ) + group = {'kernel.all.cpu.user':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.current_value('kernel.all.cpu.user',None) + + self.assertEquals(c_utime,12345) + + def test_returns_none_if_a_metric_does_not_exist_for_an_instance(self): + utime_mock = Mock( + netValues = [(Mock(inst=111),'dummyprocess',12345)], + netPrevValues = [(Mock(inst=111),'dummyprocess',12354)] + ) + group = {'proc.psinfo.utime':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.current_value('proc.psinfo.time',111) + + self.assertIsNone(c_utime) + + def test_returns_none_if_a_metric_does_not_exist_for_a_metric_that_has_no_instance(self): + utime_mock = Mock( + netValues = [('NULL',None,12345)], + netPrevValues = [('NULL',None,12354)] + ) + group = {'kernel.all.cpu.user':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.current_value('kernel.all.cpu.guest',None) + + self.assertIsNone(c_utime) + + def test_returns_the_previous_value_for_a_metric_that_has_instances(self): + utime_mock = Mock( + netValues = [(Mock(inst=111),'dummyprocess',12345)], + netPrevValues = [(Mock(inst=111),'dummyprocess',12354)] + ) + group = {'proc.psinfo.utime':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.previous_value('proc.psinfo.utime',111) + + self.assertEquals(c_utime,12354) + + def test_returns_the_previous_value_for_a_metric_that_has_no_instances(self): + utime_mock = Mock( + netValues = [('NULL',None,12345)], + netPrevValues = [('NULL',None,12354)] + ) + group = {'kernel.all.cpu.user':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.previous_value('kernel.all.cpu.user',None) + + self.assertEquals(c_utime,12354) + + def test_returns_none_if_a_metric_for_previous_value_does_not_exist_for_an_instance(self): + utime_mock = Mock( + netValues = [(Mock(inst=111),'dummyprocess',12345)], + netPrevValues = [(Mock(inst=111),'dummyprocess',12354)] + ) + group = {'proc.psinfo.utime':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.previous_value('proc.psinfo.time',111) + + self.assertIsNone(c_utime) + + def test_returns_none_if_a_metric_for_previous_value_does_not_exist_for_a_metric_that_has_no_instance(self): + utime_mock = Mock( + netValues = [('NULL',None,12345)], + netPrevValues = [('NULL',None,12354)] + ) + group = {'kernel.all.cpu.user':utime_mock} + m_repo = ReportingMetricRepository(group) + + c_utime = m_repo.previous_value('kernel.all.cpu.guest',None) + + self.assertIsNone(c_utime) + + def test_checks_if_metric_values_are_fetched_only_once_if_not_available(self): + proc_utime_mock = Mock( + netValues = [(Mock(inst=111),'dummyprocess',12345)], + netPrevValues = [(Mock(inst=111),'dummyprocess',12354)] + ) + group = {'proc.psinfo.utime':proc_utime_mock} + m_repo = ReportingMetricRepository(group) + fetch_call_count = 0 + + with mock.patch.object(m_repo,'_ReportingMetricRepository__fetch_current_values',return_value={111:12345}) as method: + c_ptime = m_repo.current_value('proc.psinfo.utime',111) + fetch_call_count = method.call_count + + self.assertEquals(fetch_call_count,1) + + def test_checks_if_metric_values_are_not_fetched_if_already_available(self): + proc_utime_mock = Mock( + netValues = [(Mock(inst=111),'dummyprocess',12345)], + netPrevValues = [(Mock(inst=111),'dummyprocess',12354)] + ) + group = {'proc.psinfo.utime':proc_utime_mock} + m_repo = ReportingMetricRepository(group) + m_repo.current_cached_values = {'proc.psinfo.utime':{111:12354}} + fetch_call_count = 0 + + with mock.patch.object(m_repo,'_ReportingMetricRepository__fetch_current_values',return_value={111:12345}) as method: + c_ptime = m_repo.current_value('proc.psinfo.utime',111) + fetch_call_count = method.call_count + + self.assertEquals(fetch_call_count,0) + +if __name__ == "__main__": + unittest.main() diff --git a/src/pcp/pidstat/test/none_handler_printer_decorator_test.py b/src/pcp/pidstat/test/none_handler_printer_decorator_test.py new file mode 100644 index 000000000..4b341a43f --- /dev/null +++ b/src/pcp/pidstat/test/none_handler_printer_decorator_test.py @@ -0,0 +1,40 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import unittest +from mock import Mock +from pcp_pidstat import NoneHandlingPrinterDecorator +class TestNoneHandlingPrinterDecorator(unittest.TestCase): + + def test_print_report_without_none_values(self): + printer = Mock() + printer.Print = Mock() + printer_decorator = NoneHandlingPrinterDecorator(printer) + + printer_decorator.Print("123\t1000\t1\t2.43\t1.24\t0.0\t3.67\t1\tprocess_1") + + printer.Print.assert_called_with("123\t1000\t1\t2.43\t1.24\t0.0\t3.67\t1\tprocess_1") + + def test_print_report_with_none_values(self): + printer = Mock() + printer.Print = Mock() + printer_decorator = NoneHandlingPrinterDecorator(printer) + + printer_decorator.Print("123\t1000\t1\tNone\t1.24\t0.0\tNone\t1\tprocess_1") + + printer.Print.assert_called_with("123\t1000\t1\t?\t1.24\t0.0\t?\t1\tprocess_1") + +if __name__ == "__main__": + unittest.main() diff --git a/src/pcp/pidstat/test/pcp-pidstat-pmlogger-config.txt b/src/pcp/pidstat/test/pcp-pidstat-pmlogger-config.txt new file mode 100644 index 000000000..62daa6610 --- /dev/null +++ b/src/pcp/pidstat/test/pcp-pidstat-pmlogger-config.txt @@ -0,0 +1,43 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +log mandatory on 1 sec { + pmda.uname + hinv.ncpu + proc.psinfo.pid + proc.nprocs + proc.psinfo.utime + proc.psinfo.stime + proc.psinfo.guest_time + proc.psinfo.processor + proc.id.uid + proc.psinfo.cmd + kernel.all.cpu.user + kernel.all.cpu.vuser + kernel.all.cpu.sys + kernel.all.cpu.guest + kernel.all.cpu.nice + kernel.all.cpu.idle + proc.id.uid_nm + proc.psinfo.rt_priority + proc.psinfo.policy + proc.psinfo.minflt + proc.psinfo.maj_flt + proc.psinfo.vsize + proc.psinfo.rss mem.physmem + proc.psinfo.cmin_flt + proc.psinfo.cmaj_flt + proc.memory.vmstack +} diff --git a/src/pcp/pidstat/test/pcp_pidstat.py b/src/pcp/pidstat/test/pcp_pidstat.py new file mode 120000 index 000000000..132817b04 --- /dev/null +++ b/src/pcp/pidstat/test/pcp_pidstat.py @@ -0,0 +1 @@ +../pcp-pidstat.py \ No newline at end of file diff --git a/src/pcp/pidstat/test/process_cpu_usage_test.py b/src/pcp/pidstat/test/process_cpu_usage_test.py new file mode 100644 index 000000000..614083591 --- /dev/null +++ b/src/pcp/pidstat/test/process_cpu_usage_test.py @@ -0,0 +1,217 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import mock +import unittest +from pcp_pidstat import ProcessCpuUsage + +class TestProcessCpuUsage(unittest.TestCase): + def setUp(self): + self.__metric_repository = mock.Mock() + self.__metric_repository.current_value = mock.Mock(side_effect=self.metric_repo_current_value_side_effect) + self.__metric_repository.previous_value = mock.Mock(side_effect=self.metric_repo_previous_value_side_effect) + + def metric_repo_current_value_side_effect(self, metric_name,instance): + if metric_name == 'proc.psinfo.utime' and instance == 1: + return 112233 + if metric_name == 'proc.psinfo.guest_time' and instance == 1: + return 112213 + if metric_name == 'proc.psinfo.stime' and instance == 1: + return 112243 + if metric_name == 'proc.psinfo.pid' and instance == 1: + return 1 + if metric_name == 'proc.psinfo.cmd' and instance == 1: + return "test" + if metric_name == 'proc.psinfo.processor' and instance == 1: + return 0 + if metric_name == 'proc.id.uid' and instance == 1: + return 1 + if metric_name == 'proc.id.uid_nm' and instance == 1: + return "pcp" + if metric_name == 'proc.psinfo.utime' and instance == 2: + return 112233 + if metric_name == 'proc.psinfo.guest_time' and instance == 2: + return 112213 + if metric_name == 'proc.psinfo.stime' and instance == 2: + return 112243 + if metric_name == 'proc.psinfo.pid' and instance == 2: + return 1 + if metric_name == 'proc.psinfo.cmd' and instance == 2: + return "test" + if metric_name == 'proc.psinfo.processor' and instance == 2: + return 0 + if metric_name == 'proc.id.uid' and instance == 2: + return 1 + if metric_name == 'proc.id.uid_nm' and instance == 2: + return "pcp" + return None + + def metric_repo_previous_value_side_effect(self, metric_name,instance): + if metric_name == 'proc.psinfo.utime' and instance == 1: + return 112223 + if metric_name == 'proc.psinfo.guest_time' and instance == 1: + return 112203 + if metric_name == 'proc.psinfo.stime' and instance == 1: + return 112233 + if metric_name == 'proc.psinfo.pid' and instance == 1: + return 1 + if metric_name == 'proc.psinfo.cmd' and instance == 1: + return "test" + if metric_name == 'proc.psinfo.processor' and instance == 1: + return 0 + if metric_name == 'proc.id.uid' and instance == 1: + return 1 + if metric_name == 'proc.id.uid_nm' and instance == 1: + return "pcp" + if metric_name == 'proc.psinfo.utime' and instance == 3: + return 112223 + if metric_name == 'proc.psinfo.guest_time' and instance == 3: + return 112203 + if metric_name == 'proc.psinfo.stime' and instance == 3: + return 112233 + if metric_name == 'proc.psinfo.pid' and instance == 3: + return 1 + if metric_name == 'proc.psinfo.cmd' and instance == 3: + return "test" + if metric_name == 'proc.psinfo.processor' and instance == 3: + return 0 + if metric_name == 'proc.id.uid' and instance == 3: + return 1 + if metric_name == 'proc.id.uid_nm' and instance == 3: + return "pcp" + return None + + def test_user_percent(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + user_percent = process_cpu_usage.user_percent() + + self.assertEquals(user_percent, 0.75) + + def test_user_percent_if_current_value_is_None(self): + process_cpu_usage = ProcessCpuUsage(3,1.34,self.__metric_repository) + + user_percent = process_cpu_usage.user_percent() + + self.assertIsNone(user_percent) + + def test_user_percent_if_previous_value_is_None(self): + process_cpu_usage = ProcessCpuUsage(2,1.34,self.__metric_repository) + + user_percent = process_cpu_usage.user_percent() + + self.assertIsNone(user_percent) + + def test_guest_percent(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + guest_percent = process_cpu_usage.guest_percent() + + self.assertEquals(guest_percent, 0.75) + + def test_guest_percent_if_current_value_is_None(self): + process_cpu_usage = ProcessCpuUsage(3,1.34,self.__metric_repository) + + guest_percent = process_cpu_usage.guest_percent() + + self.assertIsNone(guest_percent) + + def test_guest_percent_if_previous_value_is_None(self): + process_cpu_usage = ProcessCpuUsage(2,1.34,self.__metric_repository) + + guest_percent = process_cpu_usage.guest_percent() + + self.assertIsNone(guest_percent) + + def test_system_percent(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + system_percent = process_cpu_usage.system_percent() + + self.assertEquals(system_percent, 0.75) + + def test_system_percent_if_current_value_is_None(self): + process_cpu_usage = ProcessCpuUsage(3,1.34,self.__metric_repository) + + system_percent = process_cpu_usage.system_percent() + + self.assertIsNone(system_percent, None) + + def test_system_percent_if_previous_value_is_None(self): + process_cpu_usage = ProcessCpuUsage(2,1.34,self.__metric_repository) + + system_percent = process_cpu_usage.system_percent() + + self.assertIsNone(system_percent, None) + + def test_total_percent(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + total_percent = process_cpu_usage.total_percent() + + self.assertEquals(total_percent, 2.25) + + def test_total_percent_if_current_value_None(self): + process_cpu_usage = ProcessCpuUsage(3,1.34,self.__metric_repository) + + total_percent = process_cpu_usage.total_percent() + + self.assertIsNone(total_percent, None) + + def test_total_percent_if_previous_value_None(self): + process_cpu_usage = ProcessCpuUsage(2,1.34,self.__metric_repository) + + total_percent = process_cpu_usage.total_percent() + + self.assertIsNone(total_percent, None) + + def test_pid(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + pid = process_cpu_usage.pid() + + self.assertEqual(pid,1) + + def test_process_name(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + name = process_cpu_usage.process_name() + + self.assertEqual(name,'test') + + def test_cpu_number(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + number = process_cpu_usage.cpu_number() + + self.assertEqual(number,0) + + def test_user_id(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + user_id = process_cpu_usage.user_id() + + self.assertEqual(user_id,1) + + def test_user_name(self): + process_cpu_usage = ProcessCpuUsage(1,1.34,self.__metric_repository) + + user_name = process_cpu_usage.user_name() + + self.assertEqual(user_name,'pcp') + + +if __name__ == '__main__': + unittest.main() diff --git a/src/pcp/pidstat/test/process_filter_test.py b/src/pcp/pidstat/test/process_filter_test.py new file mode 100644 index 000000000..4a7e64bf0 --- /dev/null +++ b/src/pcp/pidstat/test/process_filter_test.py @@ -0,0 +1,109 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +from mock import Mock +import unittest +from pcp_pidstat import ProcessFilter + +class TestProcessFilter(unittest.TestCase): + def setUp(self): + self.options = Mock(process_name = None, + show_process_memory_util = False, + show_process_priority = False, + show_process_stack_util = False, + per_processor_usage = False, + show_process_user = False, + filtered_process_user = None, + pid_filter = None, + pid_list = []) + + self.process_1 = Mock(pid = Mock(return_value = 1), + process_name = Mock(return_value = "process_1"), + user_name = Mock(return_value='pcp'), + vsize = Mock(return_value=136), + priority = Mock(return_value=99), + stack_size = Mock(return_value=123),) + self.process_2 = Mock(pid = Mock(return_value = 2), + process_name = Mock(return_value = "process_two"), + user_name = Mock(return_value='pcp1'), + vsize = Mock(return_value=136), + priority = Mock(return_value=0), + stack_size = Mock(return_value=0),) + self.process_3 = Mock(pid = Mock(return_value = 3), + process_name = Mock(return_value = "proc_3"), + user_name = Mock(return_value='pcp1'), + vsize = Mock(return_value=0), + priority = Mock(return_value=99), + stack_size = Mock(return_value=0),) + self.process_4 = Mock(pid = Mock(return_value = 4), + process_name = Mock(return_value = "a_short_process"), + user_name = Mock(return_value='pcp'), + vsize = Mock(return_value=0), + priority = Mock(return_value=0), + stack_size = Mock(return_value=50),) + + self.processes = [self.process_1, self.process_2, self.process_3, self.process_4] + + def test_filter_processes_for_given_user_name(self): + self.options.filtered_process_user = 'pcp1' + processs_filter = ProcessFilter(self.options) + + test_filtered_processes = processs_filter.filter_processes(self.processes) + + self.assertEqual(test_filtered_processes,[self.process_2,self.process_3]) + + def test_filter_processes_for_given_process_name(self): + self.options.process_name = 'process' + processs_filter = ProcessFilter(self.options) + + test_filtered_processes = processs_filter.filter_processes(self.processes) + + self.assertEqual(test_filtered_processes,[self.process_1, self.process_2, self.process_4]) + + def test_filter_processes_for_given_pid_list(self): + self.options.pid_filter = 'ALL' + self.options.pid_list = [1,4] + processs_filter = ProcessFilter(self.options) + + test_filtered_processes = processs_filter.filter_processes(self.processes) + + self.assertEqual(test_filtered_processes,[self.process_1,self.process_4]) + + def test_filter_processes_for_process_vsize(self): + self.options.show_process_memory_util = True + processs_filter = ProcessFilter(self.options) + + test_filtered_processes = processs_filter.filter_processes(self.processes) + + self.assertEqual(test_filtered_processes,[self.process_1,self.process_2]) + + def test_filter_processes_for_process_priority(self): + self.options.show_process_priority = True + processs_filter = ProcessFilter(self.options) + + test_filtered_processes = processs_filter.filter_processes(self.processes) + + self.assertEqual(test_filtered_processes,[self.process_1,self.process_3]) + + def test_filter_processes_for_process_stack_size(self): + self.options.show_process_stack_util = True + processs_filter = ProcessFilter(self.options) + + test_filtered_processes = processs_filter.filter_processes(self.processes) + + self.assertEqual(test_filtered_processes,[self.process_1,self.process_4]) + +if __name__ == "__main__": + unittest.main() diff --git a/src/pcp/pidstat/test/process_memory_util_reporter_test.py b/src/pcp/pidstat/test/process_memory_util_reporter_test.py new file mode 100644 index 000000000..792f24f08 --- /dev/null +++ b/src/pcp/pidstat/test/process_memory_util_reporter_test.py @@ -0,0 +1,85 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +from mock import Mock +import unittest +from pcp_pidstat import CpuProcessMemoryUtilReporter + +class TestProcessMemoryUtilReporter(unittest.TestCase): + def setUp(self): + self.options = Mock( + show_process_user = None) + + process_1 = Mock(pid = Mock(return_value = 1), + process_name = Mock(return_value = "process_1"), + user_name = Mock(return_value='pcp'), + user_id = Mock(return_value=1000), + minflt = Mock(return_value=9.10), + majflt = Mock(return_value=5.34), + vsize = Mock(return_value=100), + rss = Mock(return_value=200), + mem = Mock(return_value=1.23)) + + self.processes = [process_1] + + def test_print_report_without_filtering(self): + process_memory_util = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessMemoryUtilReporter(process_memory_util, process_filter, 1, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with("123\t1000\t1\t9.1\t\t5.34\t\t100\t200\t1.23\tprocess_1") + + def test_print_report_with_min_flt_None(self): + process_memory_util = Mock() + process_filter = Mock() + printer = Mock() + self.processes[0].minflt = Mock(return_value=None) + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessMemoryUtilReporter(process_memory_util, process_filter, 1, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with("123\t1000\t1\tNone\t\t5.34\t\t100\t200\t1.23\tprocess_1") + + def test_print_report_with_maj_flt_None(self): + process_memory_util = Mock() + process_filter = Mock() + printer = Mock() + self.processes[0].majflt = Mock(return_value=None) + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessMemoryUtilReporter(process_memory_util, process_filter, 1, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with("123\t1000\t1\t9.1\t\tNone\t\t100\t200\t1.23\tprocess_1") + + def test_print_report_with_user_name(self): + self.options.show_process_user = 'pcp' + process_memory_util = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessMemoryUtilReporter(process_memory_util, process_filter, 1, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with('123\tpcp\t1\t9.1\t\t5.34\t\t100\t200\t1.23\tprocess_1') + +if __name__ == "__main__": + unittest.main() diff --git a/src/pcp/pidstat/test/process_memoryutil_test.py b/src/pcp/pidstat/test/process_memoryutil_test.py new file mode 100644 index 000000000..4c85737e0 --- /dev/null +++ b/src/pcp/pidstat/test/process_memoryutil_test.py @@ -0,0 +1,162 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import mock +import unittest +from pcp_pidstat import ProcessMemoryUtil + +class TestProcessMemoryUtil(unittest.TestCase): + def setUp(self): + self.__metric_repository = mock.Mock() + self.__metric_repository.current_value = mock.Mock(side_effect=self.metric_repo_current_value_side_effect) + self.__metric_repository.previous_value = mock.Mock(side_effect=self.metric_repo_previous_value_side_effect) + + def metric_repo_current_value_side_effect(self, metric_name,instance): + if metric_name == 'proc.psinfo.vsize' and instance == 1: + return 120084 + if metric_name == 'proc.psinfo.rss' and instance == 1: + return 6272 + if metric_name == 'proc.psinfo.minflt' and instance == 1: + return 14509 + if metric_name == 'proc.psinfo.maj_flt' and instance == 1: + return 54 + if metric_name == 'mem.physmem': + return 3794764 + if metric_name == 'proc.psinfo.cmd' and instance == 1: + return "test" + if metric_name == 'proc.psinfo.processor' and instance == 1: + return 0 + if metric_name == 'proc.id.uid' and instance == 1: + return 1 + if metric_name == 'proc.psinfo.pid' and instance == 1: + return 1 + if metric_name == 'proc.psinfo.vsize' and instance == 2: + return 120084 + if metric_name == 'proc.psinfo.rss' and instance == 2: + return 6272 + if metric_name == 'proc.psinfo.minflt' and instance == 2: + return 14509 + if metric_name == 'proc.psinfo.maj_flt' and instance == 2: + return 54 + return None + + def metric_repo_previous_value_side_effect(self, metric_name,instance): + if metric_name == 'proc.psinfo.cmin_flt' and instance == 1: + return 573930 + if metric_name == 'proc.psinfo.minflt' and instance == 1: + return 14500 + if metric_name == 'proc.psinfo.cmaj_flt' and instance == 1: + return 645 + if metric_name == 'proc.psinfo.maj_flt' and instance == 1: + return 50 + if metric_name == 'proc.psinfo.cmin_flt' and instance == 3: + return 573930 + if metric_name == 'proc.psinfo.minflt' and instance == 3: + return 14500 + if metric_name == 'proc.psinfo.cmaj_flt' and instance == 3: + return 645 + if metric_name == 'proc.psinfo.maj_flt' and instance == 3: + return 50 + return None + + def test_vsize(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + vsize = process_memory_usage.vsize() + + self.assertEquals(vsize, 120084) + + def test_rss(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + rss = process_memory_usage.rss() + + self.assertEquals(rss, 6272) + + def test_mem(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + mem = process_memory_usage.mem() + + self.assertEquals(mem, 0.17) + + def test_min_flt(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + min_flt = process_memory_usage.minflt() + + self.assertEquals(min_flt, 6.72) + + def test_min_flt_if_current_value_is_None(self): + process_memory_usage = ProcessMemoryUtil(3,1.34,self.__metric_repository) + + min_flt = process_memory_usage.minflt() + + self.assertIsNone(min_flt) + + def test_min_flt_if_previous_value_is_None(self): + process_memory_usage = ProcessMemoryUtil(2,1.34,self.__metric_repository) + + min_flt = process_memory_usage.minflt() + + self.assertIsNone(min_flt) + + def test_maj_flt(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + maj_flt = process_memory_usage.majflt() + + self.assertEquals(maj_flt, 2.99) + + def test_maj_flt_if_current_value_is_None(self): + process_memory_usage = ProcessMemoryUtil(3,1.34,self.__metric_repository) + + maj_flt = process_memory_usage.majflt() + + self.assertIsNone(maj_flt) + + + def test_maj_flt_if_previous_value_is_None(self): + process_memory_usage = ProcessMemoryUtil(2,1.34,self.__metric_repository) + + maj_flt = process_memory_usage.majflt() + + self.assertIsNone(maj_flt) + + def test_pid(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + pid = process_memory_usage.pid() + + self.assertEqual(pid,1) + + def test_process_name(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + name = process_memory_usage.process_name() + + self.assertEqual(name,'test') + + + def test_user_id(self): + process_memory_usage = ProcessMemoryUtil(1,1.34,self.__metric_repository) + + user_id = process_memory_usage.user_id() + + self.assertEqual(user_id,1) + + +if __name__ == '__main__': + unittest.main() diff --git a/src/pcp/pidstat/test/process_priority_reporter_test.py b/src/pcp/pidstat/test/process_priority_reporter_test.py new file mode 100644 index 000000000..10225c951 --- /dev/null +++ b/src/pcp/pidstat/test/process_priority_reporter_test.py @@ -0,0 +1,58 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +from mock import Mock +import unittest +from pcp_pidstat import CpuProcessPrioritiesReporter + +class TestProcessPriorityReporter(unittest.TestCase): + def setUp(self): + self.options = Mock( + show_process_user = None) + + process_1 = Mock(pid = Mock(return_value = 1), + process_name = Mock(return_value = "process_1"), + user_name = Mock(return_value='pcp'), + user_id = Mock(return_value=1000), + priority = Mock(return_value=99), + policy = Mock(return_value='FIFO')) + + self.processes = [process_1] + + def test_print_report_without_filtering(self): + process_priority = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessPrioritiesReporter(process_priority, process_filter, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with("123\t1000\t1\t99\tFIFO\tprocess_1") + + def test_print_report_with_user_name(self): + self.options.show_process_user = 'pcp' + process_priority = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessPrioritiesReporter(process_priority, process_filter, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with("123\tpcp\t1\t99\tFIFO\tprocess_1") + +if __name__ == "__main__": + unittest.main() diff --git a/src/pcp/pidstat/test/process_priority_test.py b/src/pcp/pidstat/test/process_priority_test.py new file mode 100644 index 000000000..3536d7690 --- /dev/null +++ b/src/pcp/pidstat/test/process_priority_test.py @@ -0,0 +1,73 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import mock +import unittest +from pcp_pidstat import ProcessPriority + +class TestProcessPriority(unittest.TestCase): + def setUp(self): + self.__metric_repository = mock.Mock() + self.__metric_repository.current_value = mock.Mock(side_effect=self.metric_repo_current_value_side_effect) + + def metric_repo_current_value_side_effect(self, metric_name,instance): + if metric_name == 'proc.psinfo.pid' and instance == 1: + return 1 + if metric_name == 'proc.id.uid' and instance == 1: + return 0 + if metric_name == 'proc.psinfo.rt_priority' and instance == 1: + return 99 + if metric_name == 'proc.psinfo.cmd' and instance == 1: + return "test" + if metric_name == 'proc.psinfo.policy' and instance == 1: + return 1 + + def test_pid(self): + process_priority = ProcessPriority(1,self.__metric_repository) + + pid = process_priority.pid() + + self.assertEqual(pid,1) + + def test_process_name(self): + process_priority = ProcessPriority(1,self.__metric_repository) + + name = process_priority.process_name() + + self.assertEqual(name,'test') + + def test_policy(self): + process_priority = ProcessPriority(1,self.__metric_repository) + + policy = process_priority.policy() + + self.assertEqual(policy,'FIFO') + + def test_user_id(self): + process_priority = ProcessPriority(1,self.__metric_repository) + + user_id = process_priority.user_id() + + self.assertEqual(user_id,0) + + def test_priority(self): + process_priority = ProcessPriority(1,self.__metric_repository) + + priority = process_priority.priority() + + self.assertEqual(priority,99) + +if __name__ == '__main__': + unittest.main() diff --git a/src/pcp/pidstat/test/process_stack_util_reporter_test.py b/src/pcp/pidstat/test/process_stack_util_reporter_test.py new file mode 100644 index 000000000..c46b61873 --- /dev/null +++ b/src/pcp/pidstat/test/process_stack_util_reporter_test.py @@ -0,0 +1,57 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +from mock import Mock +import unittest +from pcp_pidstat import CpuProcessStackUtilReporter + +class TestProcessStackUtilReporter(unittest.TestCase): + def setUp(self): + self.options = Mock( + show_process_user = None) + + process_1 = Mock(pid = Mock(return_value = 1), + process_name = Mock(return_value = "process_1"), + user_name = Mock(return_value='pcp'), + user_id = Mock(return_value=1000), + stack_size = Mock(return_value=136)) + + self.processes = [process_1] + + def test_print_report_without_filtering(self): + process_stack_util = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessStackUtilReporter(process_stack_util, process_filter, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with("123\t1000\t1\t136\tprocess_1") + + def test_print_report_with_user_name(self): + self.options.show_process_user = 'pcp' + process_stack_util = Mock() + process_filter = Mock() + printer = Mock() + process_filter.filter_processes = Mock(return_value=self.processes) + reporter = CpuProcessStackUtilReporter(process_stack_util, process_filter, printer, self.options) + + reporter.print_report(123) + + printer.assert_called_with("123\tpcp\t1\t136\tprocess_1") + +if __name__ == "__main__": + unittest.main() diff --git a/src/pcp/pidstat/test/process_stackutil_test.py b/src/pcp/pidstat/test/process_stackutil_test.py new file mode 100644 index 000000000..2df3d1753 --- /dev/null +++ b/src/pcp/pidstat/test/process_stackutil_test.py @@ -0,0 +1,69 @@ +#!/usr/bin/env pmpython +# +# Copyright (C) 2016 Sitaram Shelke. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# + +import mock +import unittest +from pcp_pidstat import ProcessStackUtil + +class TestProcessStackUtil(unittest.TestCase): + def setUp(self): + self.__metric_repository = mock.Mock() + self.__metric_repository.current_value = mock.Mock(side_effect=self.metric_repo_current_value_side_effect) + + def metric_repo_current_value_side_effect(self, metric_name,instance): + if metric_name == 'proc.memory.vmstack' and instance == 1: + return 136 + if metric_name == 'proc.psinfo.cmd' and instance == 1: + return "test" + if metric_name == 'proc.id.uid' and instance == 1: + return 1 + if metric_name == 'proc.psinfo.pid' and instance == 1: + return 1 + + def test_stack_size(self): + process_stack_usage = ProcessStackUtil(1,self.__metric_repository) + + stack_size = process_stack_usage.stack_size() + + self.assertEquals(stack_size, 136) + + def test_stack_referenced_size(self): + self.skipTest(reason="Implement when suitable metric is found") + + def test_pid(self): + process_stack_usage = ProcessStackUtil(1,self.__metric_repository) + + pid = process_stack_usage.pid() + + self.assertEqual(pid,1) + + def test_process_name(self): + process_stack_usage = ProcessStackUtil(1,self.__metric_repository) + + name = process_stack_usage.process_name() + + self.assertEqual(name,'test') + + + def test_user_id(self): + process_stack_usage = ProcessStackUtil(1,self.__metric_repository) + + user_id = process_stack_usage.user_id() + + self.assertEqual(user_id,1) + + +if __name__ == '__main__': + unittest.main()