একটি নির্দিষ্ট প্রক্রিয়ার সিগ্রুপ কীভাবে খুঁজে পাবেন?


18

cgroupপ্রক্রিয়াটি পেতে কোন পদ্ধতি আছে ?

কেবলমাত্র একটি প্যাকেজ যা আমি জানি ( cgroup-bin), কেবল কিছু ক্রিয়াকলাপগুলি সিগ্রুপের সাথে সরবরাহ করে এবং প্রক্রিয়া / প্রক্রিয়াগুলির তালিকাতে সিগ্রুপকে পরিবর্তন করতে দেয় তবে নির্দিষ্ট প্রক্রিয়ার সিগ্রুপ সম্পর্কে তথ্য জানার ক্ষমতা নেই।


10
চেষ্টা করুনps -o cgroup <pid>
ম্যাথু আইফে

5
বিড়াল / proc / <pid> /
সিগ্রুপ

@ মিফ, হ্যাঁ, আপনি ঠিক বলেছেন, অনেকটা ভাল y এটি আমার প্রয়োজন
জেরোস্পিল

@ c4f4t0r, আপনার পদ্ধতিটি এতটা ভাল নয়, এটি কেবলমাত্র আমার কাছে সমস্ত উপলব্ধ নিয়ামককে আউটপুট দেয় তবে কোনও প্রক্রিয়ার সিগ্রুপ নয়, তবে আপনাকেও দেয়।
জেরোস্পিল

@ মিফ যদি এটি সত্য, দুঃখিত, অন্য বিকল্পগুলি টাস্ক ফাইলগুলিতে গ্রেপ হয়, উদাহরণস্বরূপ গ্রেপ <pid> / সিগ্রুপ / সিপুসেট / অ্যাপ 1 / টাস্ক
c4f4t0r

উত্তর:


16

সিস্টেমড ব্যবহার করে (পিআইডি 3378 উদাহরণস্বরূপ):

# systemctl status 3378 | grep CGroup
CGroup: /user.slice/user-1000.slice/session-3.scope

প্রকল্প ব্যবহার:

# cat /proc/3378/cgroup 
10:memory:/user.slice/user-1000.slice
9:blkio:/user.slice/user-1000.slice
8:net_cls,net_prio:/
7:cpu,cpuacct:/user.slice/user-1000.slice
6:perf_event:/
5:freezer:/
4:cpuset:/
3:pids:/user.slice/user-1000.slice
2:devices:/user.slice/user-1000.slice
1:name=systemd:/user.slice/user-1000.slice/session-3.scope

/ সিস / এ অনুসন্ধান করা:

# cd /sys/fs/ && find * -name "*.procs" -exec grep 3378 {} /dev/null \; 2> /dev/null
cgroup/memory/user.slice/user-1000.slice/cgroup.procs:3378
cgroup/blkio/user.slice/user-1000.slice/cgroup.procs:3378
cgroup/net_cls,net_prio/cgroup.procs:3378
cgroup/cpu,cpuacct/user.slice/user-1000.slice/cgroup.procs:3378
cgroup/perf_event/cgroup.procs:3378
cgroup/freezer/cgroup.procs:3378
cgroup/cpuset/cgroup.procs:3378
cgroup/pids/user.slice/user-1000.slice/cgroup.procs:3378
cgroup/devices/user.slice/user-1000.slice/cgroup.procs:3378
cgroup/systemd/user.slice/user-1000.slice/session-3.scope/cgroup.procs:3378

শেষ কমান্ডটি এমন প্রক্রিয়া সম্পর্কিত ডেটার সাথে মিলে যাবে যার 133782337833378
পিড

8

কোনও প্রক্রিয়ার সিগ্রুপ দেখার দ্রুততম উপায় হ'ল প্রক্রিয়া নামটি এই ব্যাশ স্ক্রিপ্টটি ব্যবহার করে:

#!/bin/bash
THISPID=`ps -eo pid,comm | grep $1 | awk '{print $1}'`
cat /proc/$THISPID/cgroup

4
ব্যবহার করুন pgrep, নাps | grep | awk
প্যাট্রিক

4

RHEL7 এবং তার থেকে উপরে এবং অন্য কয়েকটি ডিস্ট্রোতে আমি এই ব্যবহারটি সহায়ক বলে মনে করি:

$ systemd-cgtop

এটি ব্যবহার করার আগে, নিশ্চিত হয়ে নিন যে আপনার DefaultCPUAccounting=yesমধ্যে রয়েছে /etc/systemd/system.conf

এমনকি আমি এগার্টের স্ক্রিপ্টে কিছু উন্নতি করেছি যা এখনও কার্যকর এবং প্যাট্রিকের পরামর্শটি ব্যবহার করার জন্য ব্যবহার করেছে pgrep:

#!/bin/bash
echo "PID  SLICE   SERVICE"
for THISPID in `pgrep $1`; do
  SLICE=$(cat /proc/$THISPID/cgroup | grep '^1:' | awk -F/ '{ print $2 }')
  SERVICE=$(cat /proc/$THISPID/cgroup | grep '^1:' | awk -F/ '{ print $3 }')
  echo "$THISPID $SLICE $SERVICE"
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.