목차/11. VSX 성능 최적화

11VSX 성능 최적화Optimizing VSX

이 장은 VSX Gateway의 성능을 감시하고 최적화하는 여러 기능을 빠짐없이 정리합니다. 크게 보면 메모리 자원을 들여다보는 vsx mstat, CPU 자원을 보는 CPView, 가상 장치를 원격으로 감시하는 SNMP, 그리고 대용량 프레임을 처리하는 Jumbo Frame 설정의 네 갈래입니다. 어떤 명령을 어디서(어느 컨텍스트에서) 실행하는지, 출력값을 어떻게 읽는지까지 함께 풀어 둡니다.

메모리 자원 보기 — vsx mstat

vsx mstat 명령은 VSX Gateway가 쓰는 메모리를 전체적으로 보여 줍니다. 시스템 전체와 각 가상 장치(Virtual Device)가 메모리를 얼마나 쓰는지 한눈에 정리해 주는데, 이 명령은 반드시 Expert 모드에서 실행해야 합니다.

전역(global) 메모리 자원으로는 다음 다섯 가지가 표시됩니다.

항목
Memory TotalVSX Gateway의 전체 물리 메모리
Memory Free사용 가능한 물리 메모리
Swap Total전체 스왑(swap) 메모리
Swap Free사용 가능한 스왑 메모리
Swap-in rate초당 전체 메모리 스왑 횟수

가상 장치는 VSID 순서로 나열됩니다. 어떤 VSID가 어떤 장치인지는 vsx stat -v 명령으로 확인합니다.

같은 정보를 cpview로도 볼 수 있습니다. Virtual System 0(VS0) 컨텍스트에서 cpview를 실행한 뒤 화면 위에서 Advanced > VSX > VSs > Physical-Resources 로 들어가면 됩니다.

vsx mstat        # VSX Gateway 메모리 개요 (Expert 모드)
vsx stat -v      # 어떤 VSID가 어떤 장치인지 확인
cpview           # VS0 컨텍스트 → Advanced > VSX > VSs > Physical-Resources

CPU 자원 보기

R80.40부터 CPU Resource Control이 CPView 유틸리티에 통합되었습니다. 절차는 다음과 같습니다.

  1. Virtual System 0(VS0) 컨텍스트로 이동합니다.
    • Expert 모드에서는 — vsenv
    • Gaia Clish에서는 — set virtual-system 0
  2. CPView를 실행합니다 — cpview
  3. 화면 위에서 Advanced > VSX > VSs > Physical-Resources 를 클릭합니다.

여기서 CPU % 컬럼을 읽는 법을 알아야 합니다. 이 값은 각 Virtual System의 모든 프로세스가 쓰는 CPU 백분율인데, top 명령과 똑같이 단일 CPU 기준의 백분율입니다. 즉 여러 코어에 걸친 사용량이 그대로 합산됩니다.

예를 들어 VSX Gateway에 CPU 코어가 4개 있고, Virtual System "VS1"의 프로세스가 다음처럼 쓴다고 합시다.

  • CPU 0의 30%
  • CPU 1의 40%
  • CPU 2의 50%
  • CPU 3의 10%

이 경우 CPU % 컬럼에는 VS1이 130% 로 표시됩니다. 따라서 VSX Gateway(또는 VSX Cluster Member) 전체의 CPU 사용률을 보려면, Total Resource Consumption 섹션의 CPU % 값을 코어 수로 나눠야 합니다.

SNMP 모니터링

VSX는 가상 장치를 SNMP로 감시할 수 있습니다. SNMP를 더 깊이 다루려면 R82 Gaia Administration Guide의 System Management 장 SNMP 절과 sk90860(How to configure SNMP on Gaia OS)을 참고하세요.

지원하는 SNMP 버전

SNMP v1, v2c, v3를 모든 모니터 모드에서 지원합니다.

지원하는 SNMP 모드

VSX는 세 가지 SNMP 모드를 지원합니다. 모드의 차이는 SNMP 데몬이 어디서 도느냐, 그리고 어느 IP로 질의하느냐에 있습니다.

  • SNMP Default 모드
  • SNMP VS 모드
  • SNMP VS in vs-direct-access 모드

SNMP Default 모드

Default 모드에서는 다음과 같이 동작합니다.

  • SNMP 데몬이 VS0(VSX Gateway) 컨텍스트에서만 돕니다.
  • VS0 SNMP 데몬이 각 가상 장치별 카운터 테이블 묶음(VSX SNMP 트리)을 갖고 있습니다.
  • 모든 SNMP 질의는 VSX Gateway의 IP 주소(컨텍스트는 VS0) 로 보내야 합니다.
① VSX Gateway로 SNMP 요청을 보내는 SNMP 서버 ② eth0 ③ VSX Gateway ④ SNMP 데몬 ⑤ Virtual System 0 ⑥ Virtual System 1(ctx 1) ⑦ Bridge 모드 Virtual System(ctx 2) ⑧ Virtual Router(ctx 3) ⑨ Virtual Switch(ctx 4)
① VSX Gateway로 SNMP 요청을 보내는 SNMP 서버 ② eth0 ③ VSX Gateway ④ SNMP 데몬 ⑤ Virtual System 0 ⑥ Virtual System 1(ctx 1) ⑦ Bridge 모드 Virtual System(ctx 2) ⑧ Virtual Router(ctx 3) ⑨ Virtual Switch(ctx 4)

SNMP VS 모드

VS 모드에서는 다음과 같이 동작합니다.

  • 각 가상 장치마다 자기 컨텍스트에서 별도의 SNMP 데몬이 돕니다.
  • 가상 장치 질의는 VS0 IP 주소를 씁니다.
  • SNMP 질의는 VSX Gateway의 인터페이스로 보내야 합니다.
    • 질의가 지정한 가상 장치로 전달(relay)됩니다.
    • 가상 장치는 같은 VSX Gateway 인터페이스로 응답을 돌려보냅니다.
  • 질의에는 반드시 VS ID를 지정해야 합니다.
① 질의 호스트 ② eth0 ③ VSX Gateway ④ VS 0 ⑤ SNMP 데몬 ⑥ UDS
① 질의 호스트 ② eth0 ③ VSX Gateway ④ VS 0 ⑤ SNMP 데몬 ⑥ UDS

SNMP VS in vs-direct-access 모드

  • 이 모드는 SNMP VS 모드가 켜져 있을 때만 쓸 수 있습니다.
  • VS0뿐 아니라 Virtual System(또는 Virtual Router) 자신의 IP 주소로 직접 SNMP 질의할 수 있게 합니다.
① 질의 호스트 ② eth0 ③ VSX Gateway ④ VS 0 ⑤ SNMP 데몬 ⑥ UDS
① 질의 호스트 ② eth0 ③ VSX Gateway ④ VS 0 ⑤ SNMP 데몬 ⑥ UDS

SNMP 모드 설정하기

각 Virtual System은 다음 요건을 만족해야 합니다.

SNMP USM 사용자 — SNMP v3 질의를 쓰려면 USM 사용자를 정의해야 합니다(USM 사용자 생성 명령은 R82 Gaia Administration Guide 참고). VSX에서 v3 질의를 쓰려면 USM 사용자에게 허용할 가상 장치를 함께 지정해야 하며, 기본적으로 VSX의 USM 사용자에게는 허용된 가상 장치가 없습니다.

set snmp usm user <User_Name> vsid <VSID>

허용 인터페이스 — vs-direct-access 모드를 켜면 Virtual System이 모든 인터페이스에서 SNMP 질의를 받습니다. 특정 인터페이스에서 SNMP 질의를 막고 싶으면, 그 인터페이스의 SNMP 트래픽을 차단하는 규칙을 정책에 추가합니다.

질의 출발지(Query source) — vs 모드와 vs-direct-access 모드에서는 질의 출발지에 대한 별도 제한이 없습니다. Security Policy가 허용하는 모든 출발지가 유효합니다.

클러스터에서 질의 실행 — VSLS(Virtual System Load Sharing) 클러스터를 VSX Cluster Member(VS0)의 Virtual IP 주소로 질의하면, Active VSX Cluster Member(VS0)의 Virtual System이 응답합니다. Standby VSX Cluster Member에서 Active인 Virtual System은 응답하지 않습니다. Standby 멤버의 Active Virtual System을 질의하려면 그 멤버의 실제(real) IP 주소를 써야 합니다.

설정 명령은 모드별로 다음과 같습니다.

설정할 모드실행 명령
SNMP Default1. set snmp agent on 2. set snmp mode default
SNMP VS 모드1. set snmp agent on 2. set snmp mode vs
SNMP direct-vs-access1. set snmp agent on 2. set snmp mode vs 3. set snmp vs-direct-access on
set snmp agent on
set snmp mode vs                 # 또는 default
set snmp vs-direct-access on     # 직접 접근까지 쓸 때
set snmp usm user admin vsid 2,15   # v3 USM 사용자에 허용 VS 지정

Virtual System SNMP 질의 예시

VS0 IP로 SNMP v3 질의하기

Gaia Clish에서:

  1. VS 컨텍스트의 SNMP 에이전트를 켭니다 — set snmp agent on
  2. VS 2와 15에 권한을 가진 SNMP 사용자를 추가합니다.
   add snmp usm user admin security-level authNoPriv auth-pass-phrase abcd1234
   set snmp usm user admin vsid 2,15
   
  1. SNMP VS 모드로 설정합니다 — set snmp mode vs
  2. 원격 질의를 보냅니다. 이때 vsidN은 SNMP v3가 요구하는 SNMP 컨텍스트 이름이고, IP 주소는 VSX Gateway 또는 VSX Cluster의 관리 IP입니다.
# Expert 모드에서
snmpwalk -n vsid2 -v 3 -l authNoPriv -u admin -A abcd1234 192.0.2.5 ifDesc
snmpwalk -n vsid15 -v 3 -l authNoPriv -u admin -A abcd1234 192.0.2.5 sysName
# 192.0.2.5 는 Management Server의 IP 주소

VS0 IP로 SNMP v1/v2c 질의하기

Gaia Clish에서:

  1. VS0 컨텍스트의 SNMP 에이전트를 켭니다 — set snmp agent on
  2. SNMP v1/v2를 켭니다 — set snmp agent-version any
  3. SNMP 커뮤니티를 설정합니다.
   set snmp community public read-only
   set snmp community private read-write
   
  1. SNMP 모드를 VS로 설정합니다 — set snmp mode vs
  2. 원격 질의를 보냅니다. 이때 커뮤니티 이름 뒤에 VSID나 Virtual System 이름을 접미사(suffix)로 붙이며, IP 주소는 VSX Gateway/Cluster의 관리 IP입니다.

이름이 MY_VS이거나 VSID가 2인 Virtual System을 질의하려면, Expert 모드에서:

snmpwalk -v 1 -c public_2 192.0.2.5 ifDescr
snmpwalk -v 1 -c private_MY_VS 192.0.2.5 ifDescr

접미사가 붙은 커뮤니티는 자동으로 생성됩니다. 다만 특수한 경우 커뮤니티 이름 충돌이 생길 수 있습니다. 예를 들어 읽기 전용 커뮤니티가 private, 읽기-쓰기 커뮤니티가 private_1이라면, VSID 1용으로 private_1private_1_1이 자동 생성됩니다. 이때 private_1이 더 이상 고유하지 않아 모호해지고, 사용 시 예기치 않게 동작할 수 있습니다.

가상 장치 IP로 직접 질의하기

  1. VS0 컨텍스트의 SNMP 에이전트를 켭니다 — set snmp agent on
  2. SNMP 사용자를 추가합니다.
   add snmp usm user admin security-level authNoPriv auth-pass-phrase abcd1234
   
  1. USM 사용자에게 가상 장치 권한을 지정합니다 — set snmp usm user admin vsid 0-10
  2. SNMP 커뮤니티를 설정합니다.
   set snmp community public read-only
   set snmp community private read-write
   
  1. SNMP VS 모드로 설정합니다 — set snmp mode vs
  2. 가상 장치 인터페이스에서의 질의를 켭니다 — set snmp vs-direct-access on
  3. 원격 질의를 보냅니다. 이때 IP 주소는 가상 장치의 Virtual IP 주소입니다. Expert 모드에서:
snmpwalk -v 1 -c public 192.0.2.81 ifDescr
snmpwalk -v 2c -c public 192.0.2.81 ifDescr
snmpwalk -v 1 -c private 192.0.2.82 ifDescr
snmpwalk -v 2c -c private 192.0.2.82 ifDescr
snmpwalk -v 3 -l authNoPriv -u admin -A abcd1234 192.0.2.83 ifDescr

VSX SNMP 트리

가상 장치(Virtual System·Virtual Switch·Virtual Router)에서 정보를 얻으려면, SNMP 브라우저에 Check Point MIB 파일을 불러와야 합니다.

  • VSX Gateway(VS0 컨텍스트)의 MIB 파일 위치는 — $CPDIR/lib/snmp/chkpnt.mib
  • VSX의 OID는 — .1.3.6.1.4.1.2620.1.16

Expert 모드 예시 명령:

# VSX 상태 테이블을 SNMP v2c로 질의
snmpwalk -m $CPDIR/lib/snmp/chkpnt.mib -c public -v 2c 192.0.2.83 vsxStatusTable

# VSX 메모리 사용 테이블을 SNMP v3로 질의
snmpwalk -m $CPDIR/lib/snmp/chkpnt.mib -v 3 -l authNoPriv -u admin -A abcd1234 192.0.2.83 vsxStatusMemoryUsageTable

카운터 테이블(vsxCountersTable)의 갱신 주기는 $FWDIR/conf/amon_vsx_refresh_interval 파일 에서 정하며, 기본값은 30초입니다.

Jumbo Frame 설정

VSX는 Jumbo Frame을 지원하며, NIC 드라이버의 최대 MTU까지 설정할 수 있습니다. 설정 방법은 어떤 장치의 MTU를 바꾸느냐에 따라 갈립니다.

Virtual Switch의 Jumbo Frame

Virtual Switch의 MTU를 설정하면, 그 Virtual Switch에 연결된 Virtual System들에서 Jumbo Frame이 켜집니다. Virtual Switch의 MTU를 바꾸면 거기에 연결된 모든 Warp Link와 인터페이스가 자동으로 새 값으로 변경됩니다. 그래서 Virtual System 쪽에서는 Warp Link의 MTU를 따로 설정할 수 없습니다.

설정 절차:

  1. Virtual Switch를 관리하는 Security Management Server 또는 Target Domain Management Server에 SmartConsole로 접속합니다.
  2. 왼쪽 탐색 패널에서 Gateways & Servers를 클릭합니다.
  3. Virtual Switch 객체를 더블 클릭합니다.
  4. 왼쪽 트리에서 Topology를 클릭합니다.
  5. Interfaces 섹션에서 해당 인터페이스를 골라 Edit를 클릭합니다.
  6. General 탭에서 MTU를 설정합니다.
  7. OK를 클릭합니다.
  8. SmartConsole 세션을 publish합니다.

Virtual Router의 Jumbo Frame

Virtual Router의 MTU를 설정하면 인터페이스에서 Jumbo Frame이 켜집니다. Warp Link의 MTU를 바꾸려면 연결된 Virtual System 쪽 설정에서 변경합니다.

설정 절차:

  1. Virtual Router를 관리하는 Security Management Server 또는 Target Domain Management Server에 SmartConsole로 접속합니다.
  2. 왼쪽 탐색 패널에서 Gateways & Servers를 클릭합니다.
  3. Virtual Router 객체를 더블 클릭합니다.
  4. 왼쪽 트리에서 Topology를 클릭합니다.
  5. Interfaces 섹션에서 해당 인터페이스를 골라 Edit를 클릭합니다.
  6. General 탭에서 MTU를 설정합니다.
  7. OK를 클릭합니다.
  8. SmartConsole 세션을 publish합니다.
  9. Virtual Router 객체에 해당 Access Control 정책을 설치합니다.

Bridge 모드 Virtual System의 Jumbo Frame

Bridge 모드 Virtual System의 MTU를 설정하면 인터페이스에서 Jumbo Frame이 켜집니다.

설정 절차:

  1. Virtual System을 관리하는 Security Management Server 또는 Target Domain Management Server에 SmartConsole로 접속합니다.
  2. 왼쪽 탐색 패널에서 Gateways & Servers를 클릭합니다.
  3. Virtual System 객체를 더블 클릭합니다.
  4. 왼쪽 트리에서 Topology를 클릭합니다.
  5. Interfaces 섹션에서 해당 인터페이스를 골라 Edit를 클릭합니다.
  6. General 탭에서 MTU를 설정합니다.
  7. OK를 클릭합니다.
  8. SmartConsole 세션을 publish합니다.
  9. Virtual System 객체에 해당 Access Control 정책을 설치합니다.