CPU가 얼마나 바쁜지 알 수 있는 방법이 있을까요?
글쓴이: hyper9 / 작성시간: 목, 2010/09/02 - 10:59오후
일단 지금 사용하는 System은 Quadcore가 2개 장착되어 있습니다.
따라서 8개의 Core가 보이고요..
8GB의 memory가 장착되어 있는데요..
이 중에서 CPU (#0, #1, #2) 와 Memory (2GB)를 하나의 Process 에 할당했어요 ..
그런데,, 이 process에는 여러개의 thread가 동작하고 있는데요..
이걸 그냥 두면 이 CPUSet안에서, CPU의 할당은 round robin처럼 되는 것이 아닌가 싶어서요.
source level에서 현재 어떤 CPU가 가장 바쁜지, 어떤 CPU가 idle인지, 또 어떤 CPU에 job이 많이 밀려있는지
등을 확인하고, 그에 맞춰서 thread를 제일 한가한 CPU에 할당해주고 싶은데요.
이런 것이 가능한지,,또 가능하다면 어떤 function을 쓸 수 있는건지 잘 몰라서, 조언을 부탁드립니다.
감사합니다.
Forums:
vmstat해서 셀스크립트로 찍으면되죠..
while true
do
sleep 1800
PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/bin:/sbin:/usr/local/bin
DATE=`date +%Y%m%d`
CHECK_TIME=`date +%Y%m%d-%H:%M`
VMSTAT=`vmstat | grep -v cpu | grep -v id | sed 's/^ //' | sed 's/ \{2,\}/ /g'`
CPUIDL=`echo ${VMSTAT} | cut -d" " -f 22`
SWAPFREE=`echo ${VMSTAT} | cut -d" " -f 4`
MEMFREE=`echo ${VMSTAT} | cut -d" " -f 5`
echo "${CHECK_TIME},${CPUIDL},${MEMFREE},${SWAPFREE},${IOKRS},${IOKWS},${IOWAIT}
" >> shells/load_${DATE}.log
done
댓글 달기