[linux] 하드웨어 정보 확인

spring·2022년 1월 30일
0

CPU 정보 확인

lscpu는 cpu정보를 좀 더 깔끔하게 정리해서 보여준다.

lscpu
cat /proc/cpuinfo

CPU 모델명 확인

cat /proc/cpuinfo | grep "model name" | uniq
# 좀 더 결과가 깔끔한 버전
cat /proc/cpuinfo | grep "model name" | uniq | awk -F: '{ gsub(/^ +| +$/, "", $2); print $2 }'

물리 CPU 수 확인

물리 CPU 수 : Server에 몇 개의 CPU가 장착되어 있는가? Xeon같은 CPU는 2대 이상 장착될 수 있다.

grep "physical id" /proc/cpuinfo | sort -u | wc -l

전체 CPU Thread 개수

하이퍼 스레딩이 켜져 있으면 실제 코어수의 2배로 결과가 출력된다.
(물리 CPU 개수) X (CPU 코어 개수) X (하이퍼스레딩이 켜져 있으면 2배)

grep -c siblings /proc/cpuinfo

해당 옵션이 물리적으로 가용할 수 있는 스레드 개수이다.

하이퍼스레딩 확인

cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2

아래와 같이 slblings가 cpu cores의 2배이면 하이퍼스레딩이 켜져 있다.

siblings        : 20
cpu cores       : 10

메모리 용량 확인

awk '{ printf "%.2fGB\n", $2/1024/1024 ; exit}' /proc/meminfo

awk '/MemTotal/ { printf "%.2fGB\n", $2/1024/1024 ; exit}' /proc/meminfo


awk '/MemAvailable/ { printf "%.2fGB\n", $2/1024/1024 ; exit}' /proc/meminfo

----

awk '/MemTotal/ { printf "%.0f\n", $2 ; exit}' /proc/meminfo
awk '/MemAvailable/ { printf "%.0f\n", $2 ; exit}' /proc/meminfo

CPU info

#!/bin/bash
cpu_model=$(cat /proc/cpuinfo | grep "model name" | uniq | awk -F: '{ gsub(/^ +| +$/, "", $2); print $2 }')
cpu_sockets=$(grep "physical id" /proc/cpuinfo | sort -u | wc -l)
echo "CPU: \"${cpu_model}\" X ${cpu_sockets}"

cpu_threads=$(grep -c siblings /proc/cpuinfo)
siblings=$(cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2 | awk -F: '/siblings/ { gsub(/^ +| +$/, "", $2); print $2 }')
cpu_cores=$(cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2 | awk -F: '/cpu cores/ { gsub(/^ +| +$/, "", $2); print $2 }')
hyper_threading="ON"
if [ "$siblings" -eq "$((cpu_cores * 2))" ]; then
    hyper_threading="ON"
else
    hyper_threading="OFF"
fi
echo "    Threads: ${cpu_threads} (Hyper-threading ${hyper_threading})"

# Memory
mem_total=$(awk '/MemTotal/ { printf "%.0f\n", $2 ; exit}' /proc/meminfo)
mem_available=$(awk '/MemAvailable/ { printf "%.0f\n", $2 ; exit}' /proc/meminfo)
mem_used=$((mem_total - mem_available))
mem_total_gb=$(echo $mem_total  | awk '{ printf "%.2f\n", $1/1024/1024 ; exit}')
mem_used_gb=$(echo $mem_used  | awk '{ printf "%.2f\n", $1/1024/1024 ; exit}')

mem_used_percentage=$((mem_used*100/mem_total))

echo "MEM: ${mem_used_gb}/${mem_total_gb}GB (${mem_used_percentage}%)"
profile
Researcher & Developer @ NAVER Corp | Designer @ HONGIK Univ.

0개의 댓글