리눅스에서 C++로 서버를 하나 만들었고 작동은 아~주 잘됩니다.
그런데 이 서버가 어느정도 자원을 먹나 보려고 top을 쳤더니 다음과 같은 화면이 나왔습니다.
top - 18:56:55 up 1:58, 3 users, load average: 0.63, 0.52, 0.49 Tasks: 269 total, 2 running, 267 sleeping, 0 stopped, 0 zombie %Cpu0 : 6.9 us, 4.8 sy, 0.0 ni, 88.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 3.1 us, 4.5 sy, 0.0 ni, 92.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 2.8 us, 3.8 sy, 0.0 ni, 93.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 3.5 us, 3.5 sy, 0.0 ni, 93.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 : 1.0 us, 3.8 sy, 0.0 ni, 95.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 : 2.3 us, 5.7 sy, 0.0 ni, 91.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu6 : 1.7 us, 6.4 sy, 0.0 ni, 92.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 14.5 us, 6.1 sy, 0.0 ni, 79.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8001028 total, 5399508 free, 1768556 used, 832964 buff/cache KiB Swap: 8257532 total, 8257532 free, 0 used. 5985120 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4773 id 20 0 1445772 0.994g 5488 S 68.1 13.0 20:53.57 My_Server 2122 root 20 0 215476 22664 9912 S 20.6 0.3 6:17.45 Xorg 8529 id 20 0 756512 36696 21592 S 4.0 0.5 0:51.94 gnome-system-mo 2960 id 20 0 1878368 150472 40284 S 3.3 1.9 2:01.81 gnome-shell 4393 id 20 0 714804 21828 13872 S 2.7 0.3 2:00.57 gnome-terminal- 25 root 20 0 0 0 0 S 0.3 0.0 0:25.58 rcu_sched
서버 프로그램 이름은 변경하였습니다. My_Server 가 제가 만든 게임서버 프로그램입니다.
CPU는 8개 코어를 가진 i7 프로세서이구요. 작동시 언제나 균등하게 모든 코어를 다 나누어 사용하도록 설계되어 있습니다. 아 운영체제는 CentOS 7 입니다.
보시다시피 제가 만든 프로그램이 사용하고 CPU 사용률이 68.1%라고 나옵니다.
하지만 위에 8개 코어가 사용하고 있는 사용률을 보면 유저쪽(첫번째열을 다 합한 값)이 35.8, 시스템쪽(두번째열을 다 합한 값)이 38.6 을 사용하고 있다고 나옵니다. 즉 다 합하면 74.4%를 쓰고 있다는 것이지요.
그런데 제가 만든 프로그램인 My_Server 와 그 밑에 Xorg 가 사용하고 있는 CPU 사용률을 다 합하면 88.7% 입니다.
모든 코어가 사용하고 있는 CPU 사용률은 모든 프로세스가 사용중인 CPU 사용률과 같거나 혹은 더 많아야 정상인 것 같은데 어떻게 이런 결과가 나오는지요...? 어떤 정보가 맞는 것인가요...?
top 명령어가 어떠한 기준으로 정보를 출력하는지 잘 모르겠네요.
인터넷을 아무리 찾아봐도 모르겠어서 마지막으로 여기에 질문 올려봅니다.
ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
|