@@ -12,7 +12,7 @@ ht=`lscpu |grep "per core" |awk -F':' '{print $2}'|xargs`
12
12
physical_cores=$(( sockets * cores_per_socket))
13
13
virtual_cores=` grep ' processor' /proc/cpuinfo | sort -u | wc -l`
14
14
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` "
16
16
echo " CPU Family : ` lscpu | grep \" CPU family\" | awk -F' :' ' {print $2}' | xargs` "
17
17
echo " Socket Number : $sockets "
18
18
echo " Cores Per Socket : $cores_per_socket "
37
37
38
38
echo " -------------------------- Memory Information --------------------------"
39
39
# 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
40
49
max_dimms=0
41
50
num_dimms_installed=0
42
51
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
45
54
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;}};' `
48
58
if [ $num_unknown -eq 0 ]; then
49
59
dimms_installed=" $dimms_installed \n $dimm_id "
50
60
(( num_dimms_installed++ ))
@@ -70,9 +80,23 @@ echo "DIMMs max slots : $max_dimm_slots"
70
80
if [ $max_dimms -ne $max_dimm_slots ]; then
71
81
echo " Error: The max dimm slots do not match the max dimms: $max_dimms "
72
82
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 "
76
100
echo " Max Memory Capacity : ` dmidecode | grep -i \" maximum capacity\" | sort -u| awk -F' :' ' {print $2}' | xargs` "
77
101
# DIMMs fequency
78
102
clock_speeds=` dmidecode | grep -i " Configured Clock Speed" | grep -i " Hz" | sort -u | awk -F' :' ' {print $2}' | xargs`
@@ -165,3 +189,68 @@ done
165
189
# dump all details for fully check
166
190
lscpu > lscpu.dump
167
191
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