리눅스 신뢰성 테스트






리눅스 신뢰성 테스트


Linux Technology Center의 리눅스 장기 신뢰성 평가

developerWorks














문서 옵션













이 페이지를 이메일로 보내기

이 페이지를 이메일로 보내기

JavaScript가 필요한 문서 옵션은 디스플레이되지 않습니다.



난이도 : 초급


Li Ge, Staff Software Engineer, Linux Technology Center, IBM
Linda Scott, Senior Software Engineer, Linux Technology Center, IBM
Mark VanderWiele, Senior Technical Staff Member, Linux Technology Center, IBM


2003 년 12 월 01 일


리눅스 커널과 다른 핵심 OS 컴포넌트-라이브러리 및 장치 드라이버 부터 파일 시스템과 네트워킹 까지-의 테스트 결과와 분석을 정리했다. 모든 테스트들은 매우 극단적 조건 속에서 긴 시간동안 수행되었다. IBM Linux Technology Center는 세 달 간의 테스트를 끝내고 그 결과를 이 자리에서 나눈다.

IBM Linux Technology Center (LTC)는 1999년 8월에 설립되어 리눅스 개발 커뮤니티와 함께 활동했다. 약 200여명의 직원들이 하나의 오픈 소스 개발자 그룹을 형성하고 있다. 패치 부터 구조적 커널 변경에 이르기까지 코드를 기여하고 있다. 또한 IBM 내의 리눅스 관련 개발을 트래킹하고 있다.


LTC의 주요 관심 분야는, 리눅스 확장성, 신뢰성, 시스템 관리 등으로 이는 리눅스를 엔터프라이즈 급으로 향상시키는데 중요한 요소들이다.


LTC의 또 다른 핵심 미션은 상용 프로젝트가 테스트 되는 방식 대로 연구실에서도 전문적으로 리눅스를 테스트하는 것이다. LTC는 LTP Linux Test Project (LTP)에 기여하고 있다.










테스트 결과 요약



다음은 실행 시간 동안 수행한 테스트 및 관찰 결과에 기반한 요약이다:


  • 리눅스 커널과 기타 핵심 OS 컴포넌트(라이브러리, 장치 드라이버, 파일 시스템, 네트워킹, IPC, 메모리 관리)는 지속적으로 실행되고 치명적인 시스템 오류 없이 실행을 완료했다.
  • 모든 실행은 높은 성공률(95% 이상)을 보였는데 간헐적인 오류도 거의 없었다.
  • 리눅스 시스템 퍼포먼스는 장기 실행 중에도 낮아지지 않았다.
  • 리눅스 커널은 하드웨어 리소스(CPU,메모리, 디스크)를 사용하기 위해 적절히 조정되었다.
  • 리눅스 시스템은 전체 CPU 로드(99% 이상)와 높은 메모리 스트레스를 훌륭히 처리했다.
  • 리눅스 시스템은 오버로드된 환경을 정확히 핸들했다.


리눅스 커널과 기타 핵심 OS 컴포넌트들은 30일, 60일, 90일이 넘어도 신뢰성과 안정성을 유지한다. 또한 강력하고 엔터프라이즈용 으로도 손상이 없는 환경을 제공한다.


목표


리눅스 신뢰성 테스트의 목표는 LTP 테스트 슈트를 사용하여 오랜 기간 동안 리눅스 고객환경과 유사한 워크로드를 주어 리눅스의 안정성과 신뢰성을 측정하는 것이다. (참고자료). 여기에서 오류 규명은 주요 목표는 아니다.


테스트 환경 개요


여기에서는 LTP 테스트 슈트를 사용하여 30일과 60일 동안의 리눅스 신뢰성 측정 테스트에 대한 분석과 테스트 결과를 설명한다. 테스팅 커널로는 SuSE Linux Enterprise Server v8 (SLES 8)을 , 테스팅 하드웨어로는 IBM pSeries 서버가 사용되었다. 특별히 고안된 스트레스 테스트 시나리오에는 광범위한 커널 컴포넌트-네트워킹과 메모리 관리 같은 광범위한 커널 컴포넌트의 실행과 테스팅 시스템에 높은 스트레스의 워크로드를 만드는 것 등이 포함되어 있다. 리눅스 커널, TCP, NFS, I/O 테스트 컴포넌트들은 높은 스트레스 워크로드를 받게된다.

















위로



테스트



30일


30일 LTP 스트레스 실행 결과 (pSeries)


  • 머신: p650 LPAR
  • CPU: (2) Power4- 1.2 GHz
  • 커널: Linux 2.4.19-ull-ppc64-SMP (SLES 8 SP 1)
  • LTP version: 20030514
  • 99.00 percent Average CPU utilization (User: 48.65 percent, System: 50.35 percent)
  • 80.09 percent Average memory utilization (8GB)



  • SLES 8 PPC64 30일 스트레스 실행은 p650 LPAR에서 성공적으로 완료됨.
  • LTPstress는 테스트 툴이었다. 테스트 케이스는 병렬과 시퀀스 방식으로 실행되었다.
  • Kernel, TCP, NFS, I/O 테스트 컴포넌트들은 높은 스트레스 워크로드를 받았다.
  • 성공 비율: 97.88 percent
  • 주요한 시스템 오류 없음.

그림 1. 30일 LTP 스트레스 실행 결과
30-day LTP stress execution results for the pSeries


  • 머신: B80
  • CPU: (2) Power3- 375 MHz
  • 커널: Linux 2.4.19-ull-ppc64-SMP (SLES 8 SP 1)
  • LTP version: 20030514
  • 99.96 percent average CPU utilization (User: 75.02 percent, System: 24.94 percent)
  • 61.69 percent average memory utilization (8GB)
  • 3.86 percent average swap utilization (1GB)

관찰:


  • SLES 8 PPC64 60일 스트레스 실행은 pSeries B80에서 성공적으로 완료됨.
  • 테스트 툴: LTPstress. 테스트 케이스는 병렬과 시퀀스 방식으로 실행되었다.
  • Kernel, TCP, NFS, I/O 테스트 컴포넌트들은 높은 스트레스 워크로드를 받았다.
  • 성공 비율: 95.12 percent
  • 주요한 시스템 오류 없음.


그림 2. 60일 LTP 스트레스 실행 결과
60-day LTP stress execution results for the pSeries

하드웨어 및 소프트웨어 환경



표 1. 하드웨어 환경
























시스템 프로세서 메모리 디스크 스왑 파티션 네트워크
pSeries 650 (LPAR) Model 7038-6M2 2 - POWER4+(TM) 1.2GHz 8GB (8196MB) 36GB U320 IBM Ultrastar (다른 디스크도 있지만 사용되지 않음) 1GB Ethernet controller: AMD PCnet32
pSeries 630 Model 7026-B80 2 - POWER3(TM)+ 375 MHz 8GB (7906MB) 16GB 1GB Ethernet controller: AMD PCnet32

표 2. 소프트웨어 환경















컴포넌트 버전
Linux SuSE SLES 8 with Service Pack 1
Kernel 2.4.19-ul1-ppc64-SMP
LTP 20030514
















위로



방법


시스템 안정성 및 신뢰성은 지속적인 실행 시간과 시스템의 확실한 업로드로 측정된다.


xSeries와 pSeries 서버에서 기본적으로 30일 테스트가 수행되고 60일과 90일로 나아갔다. 초기 주안점은 커널, 네트워킹, I/O 테스팅이다.


테스트 툴
Linux Test Project (LTP; 참고자료)는 SGI, IBM, OSDL, Bull, Wipro Technologies와의 합동 프로젝트이다. 리눅스의 신뢰성, 강도, 안정성을 테스트 하는 오픈 소스 커뮤니티에 테스트 슈트를 제공하는 것이 목표이다. Linux Test Project는 리눅스 커널과 관련 기능들을 테스트 하기 위한 툴 컬렉션이다. 커널 테스팅의 자동화를 실현시켜 리눅스 커널을 향상시키는 것이 목적이다.


현재 LTP 슈트에는 2000개의 테스트 케이스가 있다. 대부분 syscall, 메모리, IPC, I/O,파일시스템, 네트워킹 같은 커널 인터페이스를 다루고 있다. 테스트 슈트는 업데이트 되고 월간 배포되며 다양한 아키텍쳐에서 실행된다.

















위로



테스트 전략


24 시간 "초기 테스트"와 "스트레스 테스트" 단계가 있다


초기 테스트를 통과하는 것은 엔트리 요구사항 같다. 초기 테스트는 하드웨어와 OS에서 LTP 테스트 슈트의 24 시간동안의 성공적인 실행이 이루어져야 한다. 드라이버 스크립트인 runalltests.sh는 커널을 확인하는데 사용된다. 이 스크립트는 순서대로 패키지 테스트를 실행한다. 병렬로 동시에 실행되는 여러 인스턴스들을 시작하는 옵션도 가지고 있다. 이 스크립트는 디폴트 실행이다:


  • 파일시스템 스트레스 테스트
  • 디스크 I/O 테스트
  • 메모리 관리 스트레스 테스트
  • IPC 스트레스 테스트
  • 스케줄러 테스트
  • 명령어 함수 확인 테스트
  • 시스템 호출 함수 확인 테스트


스트레스 테스트는 시스템 사용도가 높을 때 제품의 강도를 확인하는 것이다. runalltests.sh 외에 ltpstress.sh 라고 하는 테스트 시나리오는 광범위한 커널 컴포넌트들을 메모리 관리 및 네트워킹과 병행하여 실행하고 테스팅 시스템에 높은 스트레스 워크로드를 만들도록 특별히 고안되었다. ltpstress.sh는 LTP 테스트 슈트의 일부이다. 이 스크립트는 비슷한 테스트 케이스들을 병렬로 실행하며 다른 테스트 케이스들은 순차로 실행한다. 이 스크립트도 디폴트로 실행된다:


  • NFS 스트레스 테스트
  • 메모리 관리 스트레스 테스트
  • 파일시스템 스트레스 테스트
  • Math (floating point) 테스트
  • pthread 스트레스 테스트
  • 디스크 I/O 테스트
  • IPC (pipeio, semaphore) 테스트
  • 시스템 호출 함수 확인 테스트
  • 네트워킹 스트레스 테스트

















위로



시스템 감시


변경된 top 유틸리티는 시스템 감 시 툴로 사용되었다. top은 실시간으로 프로세서 액티비티를 계속 관찰한다. 향상된 top 유틸리티는 추가 기능이 있는데 top 결과의 스냅샷을 파일에 저장할 수 있고 결과 파일의 평균을 요약 할 수 있다.


우리의 테스트에서 시스템 사용에 대한 스냅샷(또는 top 아웃풋 파일)은 10초 마다 찍히며 결과 파일에 저장된다. 게다가 시스템 사용과 LTP 테스트 아웃풋 파일은 매일 또는 주 마다 찍힌다. 이 기능은 cron 잡과 스크립트에 의해 제어되었다.


테스트 전
선택된 모든 테스팅 시스템은 가능한 한 서로 비슷하게 설정되었다. 여분의 하드웨어는 잠재적인 하드웨어 오류를 줄이기 위해 제거되었다. 최소한의 보안 옵션이 이미지 설치 동안 선택되었다. 최소 2GB의 디스크 공간이 top 데이터 파일과 LTP 로그 파일을 저장하도록 보유되었다.


테스팅 중간
테스트 중에는 시스템은 방해받지 않았다. 테스트가 실행되는지 확인하기 위한 임시 액세스는 허용했다. ps 명령어 사용, top 데이터 체크, LTP 로그 데이터 확인 등이 그것이다.


테스팅 후
테스트가 완료되면 시스템 감시 툴인 top은 갑자기 멈춘다. 모든 top 데이터 파일들은 저장되고 분석을 위한 데이터를 제공하는 프로세스가 시작된다.

















위로



참고자료


















위로



필자소개










Li Ge: Staff Software Engineer in the IBM Linux Technology Center.











Linda Scott: Senior Software Engineer, IBM development lab.











Mark VanderWiele: Senior Technical Staff Member & Architect, IBM Linux Technology Center.