LinuxですべてのPIDを試してください

LinuxですべてのPIDを試してください

次のガイドラインのように、特定のPIDではなく順番にPIDを試してみたいと思います。

 perf stat -p <PID> -e cycles,instructions,cache-references,cache- 
misses,bus-cycles -a sleep 10

 #this is example of 1 specefic PID
 perf stat -p 3347 -e cycles,instructions,cache-references,cache-misses,bus-cycles -a sleep 10

すべてのPIDを試したいのですが、すべてのPIDを試したい場合は、<PID>の代わりに何を書くべきかわかりません。

ベストアンサー1

繰り返したいならみんなシステムで実行されているpid(/procdirが必要であり、とは異なりますMac/*BSD):

for pid in /proc/[0-9]*; do printf '%s\n' "${pid##*/}"; done

だから:

for pid in /proc/[0-9]*; do
    perf stat -p "${pid##*/}" -e cycles,instructions,cache-references,cache-misses,bus-cycles -a 2>&1 >> perf.txt
    sleep 10 
done

逆に、リソース集約的なプロセスに基づいている場合は、top次の方法があります。

for pid in $(top -bn1 | awk '/ PID /{p=1;next}(p==1){print $1}'); do ...

削除されました。n1topMac/*BSD

おすすめ記事