From 3677e3dee8deadccddfee689e1d31da50a768e30 Mon Sep 17 00:00:00 2001 From: Attila TOZSER Date: Tue, 21 Apr 2015 18:01:15 +0200 Subject: [PATCH 1/2] cgroups detailed checks --- mdiag/mdiag.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/mdiag/mdiag.sh b/mdiag/mdiag.sh index 5e822767..c75ce01d 100755 --- a/mdiag/mdiag.sh +++ b/mdiag/mdiag.sh @@ -289,6 +289,30 @@ smartctl --scan | sed -e "s/#.*$//" | while read i; do smartctl --all \$i; done EOF msection scsidevices getfiles /sys/bus/scsi/devices/*/model + +#check cgroups capabilities and alignment +cgrouphierarchy="`find /cgroup -type d 2> /dev/null`" +for cgroup in $cgrouphierarchy; do + cgroupfilelist="$cgroupfilelist `find $cgroup -type f 2> /dev/null`" +done + +for cgroupfile in $cgroupfilelist; do + if [ -r "$cgroupfile" ] + then + cgroupconfigcontent="$cgroupconfigcontent"$'\n'"--> FILE: $cgroupfile"$'\n'"`cat $cgroupfile 2> /dev/null`" + fi +done + +msection cgroups < /dev/null && echo "/cgroups found" || echo "NO /cgroups --> I think nothing to check here" +msubsection cgred service cgred status +msubsection cgconfig service cgconfig status +msubsection configfiles getfiles /etc/cg* /etc/cgconfig.d/*; +msubsection grouphierarchy find /cgroup -type d 2> /dev/null +msubsection groupconfiguration echo "$cgroupconfigcontent" +EOF + + cat < Date: Thu, 7 May 2015 19:04:07 +0200 Subject: [PATCH 2/2] DEBUG : discovering cgroups mountpoints instead of hardcoded /cgroup --- mdiag/mdiag.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/mdiag/mdiag.sh b/mdiag/mdiag.sh index c75ce01d..de529e8a 100755 --- a/mdiag/mdiag.sh +++ b/mdiag/mdiag.sh @@ -291,11 +291,23 @@ msection scsidevices getfiles /sys/bus/scsi/devices/*/model #check cgroups capabilities and alignment -cgrouphierarchy="`find /cgroup -type d 2> /dev/null`" +#list the mounted controllers: +cgroupcontrollers="`grep -e \"^cgroup\" /proc/mounts | xargs -l | cut -f2 -d' '`" + +#collect the groups defined in the moutned controllers: +for cgcontoroller in $cgroupcontrollers; do + cgrouphierarchy="$cgrouphierarchy "$'\n'"`find $cgcontoroller -type d 2> /dev/null`" +done + +#list the configuration files for the groups for cgroup in $cgrouphierarchy; do - cgroupfilelist="$cgroupfilelist `find $cgroup -type f 2> /dev/null`" + if [ ! -z "$cgroup" ] + then + cgroupfilelist="$cgroupfilelist `find $cgroup -type f 2> /dev/null`" + fi done +#wrap the content for cgroupfile in $cgroupfilelist; do if [ -r "$cgroupfile" ] then @@ -308,7 +320,7 @@ ls /cgroup &> /dev/null && echo "/cgroups found" || echo "NO /cgroups --> I thin msubsection cgred service cgred status msubsection cgconfig service cgconfig status msubsection configfiles getfiles /etc/cg* /etc/cgconfig.d/*; -msubsection grouphierarchy find /cgroup -type d 2> /dev/null +msubsection grouphierarchy echo "$cgrouphierarchy" msubsection groupconfiguration echo "$cgroupconfigcontent" EOF