썬 파이어 T2000 서버는 멀티스레드 프로세스 처리 성능이 우수한 UltraSPARC T1 프로세서를 사용합니다. 예를 들어, 썬 파이어 T2000 서버는 멀티스레드 애플리케이션인 웹 애플리케이션과 오라클 데이터베이스용으로 훌륭합니다. 어떤 시스템의 애플리케이션 중 일부가 싱글 스레드 방식이더라도 컴퓨팅 리소스를 최대한 활용할 수는 있습니다.

이 테크팁을 위해 사용한 테스트 시스템은 8코어 썬 파이어 T2000 서버입니다(솔라리스 10 OS 실행). 코어당 4개의 스레드가 있으며 CPU는 32개이고 mpstat 결과도 CPU 32개로 보고됩니다. 이제 기본 예약 클래스를 설정할 때 달라지는 점을 보여 드리겠습니다.


기본 예약 클래스가 없는 경우

기본 예약 클래스가 없을 때 이 시스템은 싱글 스레드 프로세스 12개밖에 처리하지 못합니다.

# dispadmin -d
dispadmin: Default scheduling class is not set

싱글 스레드 프로세스 32개를 실행해 보겠습니다.

# perl -e 'while (--$ARGV[0] and fork) {}; while () {}' 32 &

이제 vmstat를 사용하여 실행 큐에 있는 프로세스 수를 확인합니다.

# vmstat 3 3
 kthr      memory            page            disk          faults
 cpu
 r  b w   swap     free    re mf pi po fr de sr s1 s2 s3 s4  in   sy
 cs  us sy  id
 0  0 0 38799496 15164936   1  4  4  1  1  0  1  1 -0 -0  0 497  208
 442  0  0 100
 20 0 0 39127104 15498368   0  3  0  0  0  0  0  0  0  0  0 575  197
 401 37  0  63
 20 0 0 39126848 15498104   0  1  2  2  2  0  0  0  0  0  0 578  186
 416 37  0  62

vmstat 결과, 실행 큐의 kthr:r 아래 프로세스 20개가 있으며 CPU 활용률은 37%로 나타납니다. 따라서 이 시스템은 32개에서 20개를 뺀 12개의 싱글 스레드 프로세스만 처리할 수 있음을 알게 되었습니다.


기본 예약 클래스가 있는 경우

기본 예약 클래스가 있을 때 이 시스템은 싱글 스레드 프로세스 32개를 처리할 수 있습니다. dispadmin은 시스템의 스케줄러 매개변수를 표시하거나 설정하는 명령입니다.

# dispadmin -d
FSS     (Fair Share)
# perl -e 'while (--$ARGV[0] and fork) {}; while () {}' 32 &

# vmstat 3 3
 kthr      memory            page            disk           faults
 cpu
 r b w   swap    free    re  mf  pi po fr de sr s1 s2 s3 s4  in   sy
 cs   us sy id
 0 0 0 37673528 15247408 90 276 355  1  1  0 84 12 -0 -0 19 796 5710
 2370  37  1 62
 0 0 0 38753928 15163160  0   4   0  0  0  0  0  0  0  0  0 760  176
  356 100  0  0
 0 0 0 38753672 15162904  0   1   0  0  0  0  0  0  0  0  0 729  256
  362 100  0  0

vmstat 결과, 실행 큐에 프로세스 0개가 있으며 CPU 활용률은 100%로 나타납니다.

이와 함께 TS(시간 공유) 클래스도 시험해 보았으며 이 시스템은 32개의 싱글 스레드 프로세스를 처리할 수 있습니다.

보시다시피 멀티스레드 프로세서(예: UltraSPARC T1 또는 T2 프로세서)의 서버를 사용하는 경우에는 서버의 컴퓨팅 리소스를 최대한 활용할 수 있도록 기본 예약 클래스를 설정하는 것이 좋습니다.


이 글의 영문 원본은
Set Up a Default Scheduling Class to Fully Use Resources on Multithreaded Systems
에서 보실 수 있습니다.

"관리자코너" 카테고리의 다른 글

2008/07/15 14:19 2008/07/15 14:19

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/616

댓글을 달아 주세요

[로그인][오픈아이디란?]

◀ Prev 1  ... 62 63 64 65 66 67 68 69 70  ... 641  Next ▶