
Nigel Griffiths 씨가 WLM(Workload Manager)에 대해 설명하며, 큰 X 서버에서 코어 수가 몇 천 개가 되는 경우 이를 개별적으로 모니터링할 수 없으며, WLM은 이를 해결할 목적으로 개발되었어요.
큰 서버에서는 수십 개의 workload가 작동하며 일반적으로 관계형 데이터베이스, 배치 작업, 데이터 전송, 파일 내보내기 및 보고서 작성, 사용자 애플리케이션, 보안 도구, 백업 등 많은 일들이 작동합니다.
이 영상에서는 이러한 작업들이 어떻게 분류되어 관리되는지에 대해 구체적으로 소개합니다.

WLM은 AIX에서 사용하는 프로세스를 클래스로 분류하여 제어하는 기능이에요.
CPU, 메모리 및 블록 I/O 모니터링을 통해 어떤 작업 부하가 리소스를 많이 사용하는지 파악할 수 있죠.
명령어 WLM assign을 사용하면 다른 데이터베이스에 연결된 같은 이름의 명령어 문제를 우회할 수 있어요.
AIX에는 WLM 이외에도 워크로드 파티션 매니저(WPAR Manager)라는 다른 도구도 있지만 더 이상 사용되지 않고, 대신 워크로드 매니저를 사용하여 WPAR을 생성하고 제어할 수 있어요.

20년 전에 작성된 자세하게 모든 기능을 다루는 레드북을 발견했어요.
해당 개념에 대해 시작하고, 왜 이를 활성화하고 사용해야 하는지 알려주는 비디오도 있어요.
AIX 매뉴얼에는 작성자가 간단하게 설명한 관리에 대한 정보가 있고, 모든 프로세스를 워크로드 관리 클래스에 할당해야 한다고 해요.
클래스 목록을 작성하는 것보다 직접 예제를 복사하여 세부 정보를 변경하는 것이 더 쉽다는데, 사용자 또는 그룹, 애플리케이션을 기준으로 프로세스를 분류할 수 있다는 것도 알려주고 있어요.

PS 명령어로 PID를 찾고 WLM assign을 사용해 이름과 함께 클래스 ID를 할당해 프로세스의 특정 조합을 찾는다.
예를 들어, 일괄처리 배치를 실행하면 각 단계별로 C 쉘에서 PID를 사용하여 원하는 클래스를 할당 가능하다.
UNIX 시스템에는 AIX 5.6, Network 7, 7.3 등이 내장되어 별도의 설치가 필요하지 않다.

WLM 컨트롤 사용 시 키보드에 오류가 있는 듯한데, 컨트롤에 두 개의 O가 누락되어 있어요.
시작은 'P'를 눌러야 하며, 작업 부하를 제어하지는 않고 활성화합니다.
파일 구성이나 새로운 사용자 변경 시 업데이트를 해야하며, 중지할 때는 'O'를 눌러야 합니다.
WLM stat 명령어를 사용하여 작업 부하를 확인할 수 있고, 검사 결과에 따라 리소스를 조정할 수 있습니다.
디스크 I/O를 사용하지는 않지만, CPU와 메모리 부하를 가상으로 생성하여 작업 부하를 확인할 수 있습니다.

운영 체제의 한 부분인 nmon은 CPU 성능 외에도 memory와 I/O를 차트 및 그래프로 시각화하여 보여줘요.
CPU, memory, I/O 구성 설정은 디폴트이므로, 제약이 없이 사용 가능해요.
JMON은 Enron의 후속 제품으로 CPU 소비 구성 및 동적 제한 기능이 추가되어 있어요.
물리적 CPU는 세 개 이상 사용 가능하며, nmon의 차트에서 CPU 사용량을 볼 수 있어요.

서버의 용량 계획을 수행하는 데에 더 이상적인 LPARs를 통해 머신의 용량을 파악하는 방법입니다.
또한, LPARs를 사용하면 CPU 개수를 동적으로 파악하여 서버에서 얼마나 많은 CPU를 사용하는지 확인 가능합니다.
다이나믹한 CPU 사용량이 바뀌면 이에 따라서 스케일링도 조정됩니다.
메모리 사용량도 확인 가능하며, 서버 안에서 구동되는 작업을 보여주는데 데이터베이스 같은 경우 특히 높게 표시됩니다.
또한, 블록 IO를 통해 서버에 대한 IO 요청이 어느 정도 나타나는지도 확인 가능하지만, 그래프에서는 일부만 표시됩니다.

성능 모니터링 시스템으로 만들어진 동적인 그래프를 통해 리소스 할당 상태를 확인할 수 있어요.
애플리케이션, 배치, 배달, 쉐어 클래스는 각각 색깔로 표시되고, 각 클래스에 따라 CPU 메모리 할당이 다릅니다.
데이터베이스 프로세스 수와 클래스에 할당된 프로세스 수 체크는 중요합니다.

워크로드가 늘어나면 상세히 분석하며 CPU 파워 부족 확인이 가능해요.
로직 파티션에서 CPU 파워 부족을 확인하고 성능 향상을 위해 대응 방안을 채택할 수 있어요.
클래스와 리소스를 살펴보며 컴퓨터에서 발생하는 현상 파악 가능해요.
이를 통해 용량 추가 등 조치를 취할 수 있죠.

그래프에서 선굵기, 막대그래프, 포인트 표시 등 다양한 옵션조절을 할 수 있어요.
또한, 굵은 선과 교차하는 선 그래프를 선호하시는 분들도 많아요.
CPU 용량에 제한을 둘 수도 있답니다.
예를 들어, Class B를 10% 이하로 제한할 수 있어요.
하지만 CPU 용량이 충분하더라도 제한된 클래스는 자원을 사용하지 못하고 멈춤 현상이 발생할 수 있으니 주의하세요.

프로세스의 CPU 시간 및 메모리 할당을 제어하기 위해 'shares'를 사용해 작업량을 조절하고 간섭하지 않도록 합니다.
또한 CPU 제어를 통해 부주의한 응용프로그램이 과도한 CPU 시간을 사용하지 못하도록 합니다.
할당된 메모리가 제한을 초과하면 페이지아웃이 발생하여 성능에 치명적인 영향을 미칠 수 있습니다.

"Shares"는 같이 합쳐서 100%가 되어야 한다고 생각하지만, 실제로는 그렇지 않아요.
이 예시에서는 총 3개의 클래스가 있고, 새로운 파란색 클래스를 추가하려 합니다.
새로운 클래스에 기존 클래스에서 숫자를 가져와야 하는데, 이를 계산하기 번거로울 경우 "Shares"를 사용하여 계산할 수 있어요.
"Shares"를 사용하면 각 클래스의 작업 부하를 설정하고 조정할 수 있어요.
'AIX' 카테고리의 다른 글
AIX 7.3에서 emgr_check_ifixes 사용하기 (0) | 2024.07.12 |
---|---|
Oracle용 AIX 튜닝 (0) | 2024.07.12 |
AIX Tuning (0) | 2024.04.20 |
nmon and nsum (0) | 2023.12.08 |
Nmon을 처음 사용하는 사람들을 위한 스타터 팩 (3) | 2023.12.01 |