Skip to content

Commit f62dbeb

Browse files
committed
follow comments and add limited version of dmidecode
1 parent 62c00e0 commit f62dbeb

File tree

1 file changed

+97
-8
lines changed

1 file changed

+97
-8
lines changed

paddle/scripts/check_env.sh

Lines changed: 97 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ht=`lscpu |grep "per core" |awk -F':' '{print $2}'|xargs`
1212
physical_cores=$((sockets * cores_per_socket))
1313
virtual_cores=`grep 'processor' /proc/cpuinfo | sort -u | wc -l`
1414
numa_nodes=`lscpu |grep "NUMA node(s)"|awk -F':' '{print $2}'|xargs`
15-
echo "CPU Name : `lscpu |grep \"name\" |awk -F':' '{print $2}'|xargs`"
15+
echo "CPU Name : `cat /proc/cpuinfo |grep -i "model name" |uniq |awk -F ':' '{print $2}'|xargs`"
1616
echo "CPU Family : `lscpu |grep \"CPU family\" |awk -F':' '{print $2}'|xargs`"
1717
echo "Socket Number : $sockets"
1818
echo "Cores Per Socket : $cores_per_socket"
@@ -37,14 +37,24 @@ fi
3737

3838
echo "-------------------------- Memory Information --------------------------"
3939
# dmidecode support start from 2.11
40+
dmi_ver=`dmidecode --version|awk -F '.' '{print $1}'|xargs`
41+
if [ $dmi_ver -lt 2 ]; then
42+
echo "Error: dmidecode unknown or version is too old"
43+
exit 0
44+
fi
45+
if [ `dmidecode | grep -ic "Permission denied"` -ne 0 ]; then
46+
echo "Error: need root to run dmidecode"
47+
exit 0
48+
fi
4049
max_dimms=0
4150
num_dimms_installed=0
4251
for dimm_id in `dmidecode |grep Locator|sort -u | awk -F ':' '{print $2}'`; do
43-
num_refered=`dmidecode |grep -c "$dimm_id"`
44-
# the acutal dimm id should be refered only once
52+
num_refered=`dmidecode |grep -wc "$dimm_id"`
53+
# the actual dimm id should be refered only once
4554
if [ $num_refered -eq 1 ]; then
46-
num_unknown=`dmidecode | awk '/'$dimm_id'/ {s=1}; {if (s==1) {a[NR]=$0}};
47-
/Manufacturer/ {s=0; for (i in a) print a[i]; delete a}' |grep -ic unknown`
55+
num_unknown=`dmidecode | awk '/'$dimm_id'/ {s=1; f=0};
56+
/Unknown/ {f=1};
57+
/Manufacturer/ {if (s==1) {print f; exit 0;}};'`
4858
if [ $num_unknown -eq 0 ]; then
4959
dimms_installed="$dimms_installed \n $dimm_id"
5060
((num_dimms_installed++))
@@ -70,9 +80,23 @@ echo "DIMMs max slots : $max_dimm_slots"
7080
if [ $max_dimms -ne $max_dimm_slots ]; then
7181
echo "Error: The max dimm slots do not match the max dimms: $max_dimms"
7282
fi
73-
echo "Memory Size : `free -h |grep -i mem |awk -F' ' '{print $2}'|xargs`"
74-
echo "Swap Memory Size : `free -h |grep -i swap |awk -F' ' '{print $2}'|xargs`"
75-
echo "Total Memory Size : `free -th |grep -i total |tail -n 1| awk -F' ' '{print $2}'|xargs`"
83+
free_ver_main=`free -V|awk -F ' ' '{print $NF}'|awk -F '.' '{print $1}'`
84+
free_ver_sub=`free -V|awk -F ' ' '{print $NF}'|awk -F '.' '{print $2}'`
85+
if [ $free_ver_main -lt 3 ] || [ $free_ver_sub -lt 3 ]; then
86+
mem_sz=`free |grep -i mem |awk -F' ' '{print $2}'|xargs`
87+
swap_sz=`free |grep -i swap |awk -F' ' '{print $2}'|xargs`
88+
total_sz=`free -t |grep -i total |tail -n 1| awk -F' ' '{print $2}'|xargs`
89+
mem_sz="`awk 'BEGIN{printf "%.1f\n",('$mem_sz'/1024/1024)}'` GB"
90+
swap_sz="`awk 'BEGIN{printf "%.1f\n",('$swap_sz'/1024/1024)}'` GB"
91+
total_sz="`awk 'BEGIN{printf "%.1f\n",('$total_sz'/1024/1024)}'` GB"
92+
else
93+
mem_sz=`free -h |grep -i mem |awk -F' ' '{print $2}'|xargs`
94+
swap_sz=`free -h |grep -i swap |awk -F' ' '{print $2}'|xargs`
95+
total_sz=`free -th |grep -i total |tail -n 1| awk -F' ' '{print $2}'|xargs`
96+
fi
97+
echo "Memory Size : $mem_sz"
98+
echo "Swap Memory Size : $swap_sz"
99+
echo "Total Memory Size : $total_sz"
76100
echo "Max Memory Capacity : `dmidecode |grep -i \"maximum capacity\"|sort -u|awk -F':' '{print $2}'|xargs`"
77101
# DIMMs fequency
78102
clock_speeds=`dmidecode | grep -i "Configured Clock Speed" | grep -i "Hz" |sort -u | awk -F':' '{print $2}'|xargs`
@@ -165,3 +189,68 @@ done
165189
# dump all details for fully check
166190
lscpu > lscpu.dump
167191
dmidecode > dmidecode.dump
192+
193+
# The expected result would be like:
194+
# ========================= Hardware Information =========================
195+
# CPU Name : Intel(R) Xeon(R) Gold 6148M CPU @ 2.40GHz
196+
# CPU Family : 6
197+
# Socket Number : 2
198+
# Cores Per Socket : 20
199+
# Total Physical Cores : 40
200+
# Total Virtual Cores : 40
201+
# Hyper Threading : OFF
202+
# NUMA Nodes : 2
203+
# -------------------------- Memory Information --------------------------
204+
# Installed DIMM number : 12
205+
# Installed DIMMs Locator:
206+
# CPU1_DIMM_A1
207+
# CPU1_DIMM_B1
208+
# CPU1_DIMM_C1
209+
# CPU1_DIMM_D1
210+
# CPU1_DIMM_E1
211+
# CPU1_DIMM_F1
212+
# CPU2_DIMM_A1
213+
# CPU2_DIMM_B1
214+
# CPU2_DIMM_C1
215+
# CPU2_DIMM_D1
216+
# CPU2_DIMM_E1
217+
# CPU2_DIMM_F1
218+
# Not installed DIMMs :
219+
# CPU1_DIMM_A2
220+
# CPU1_DIMM_B2
221+
# CPU1_DIMM_C2
222+
# CPU1_DIMM_D2
223+
# CPU1_DIMM_E2
224+
# CPU1_DIMM_F2
225+
# CPU2_DIMM_A2
226+
# CPU2_DIMM_B2
227+
# CPU2_DIMM_C2
228+
# CPU2_DIMM_D2
229+
# CPU2_DIMM_E2
230+
# CPU2_DIMM_F2
231+
# DIMMs max slots : 24
232+
# Memory Size : 376G
233+
# Swap Memory Size : 4.0G
234+
# Total Memory Size : 380G
235+
# Max Memory Capacity : 2304 GB
236+
# Configed Clock Speed : 2666 MHz
237+
# -------------------------- Turbo Information --------------------------
238+
# Scaling Driver : intel_pstate
239+
# Turbo Status : ON
240+
# CPU Max Frequency : 3.70 GHz
241+
# CPU Min Frequency : 1.00 GHz
242+
# CPU Freq Governor : performance
243+
# ========================= Software Information =========================
244+
# BIOS Release Date : 03/10/2017
245+
# OS Version : CentOS Linux release 7.3.1611 (Core)
246+
# Kernel Release Version : 3.10.0-514.el7.x86_64
247+
# Kernel Patch Version : #1 SMP Tue Nov 22 16:42:41 UTC 2016
248+
# GCC Version : 4.8.5 20150623 (Red Hat 4.8.5-11)
249+
# CMake Version : 3.5.2
250+
# ------------------ Environment Variables Information -------------------
251+
# KMP_AFFINITY : unset
252+
# OMP_DYNAMIC : unset
253+
# OMP_NESTED : unset
254+
# OMP_NUM_THREADS : unset
255+
# MKL_NUM_THREADS : unset
256+
# MKL_DYNAMIC : unset

0 commit comments

Comments
 (0)