반응형

제목: 소프트웨어 회춘(Software Rejuvenation: Analysis, Module and Applications)

저자: Yennun Huang 3, AT&T 벨 연구소, 미국

 

문서유형: 연구기관 페이퍼( 10 페이지), 1995

 


 

일시적 소프트웨어 실패(Transient software failure)

  • 포착하기 어렵고 비결정적(non-deterministic)인 성질의 하이젠버그는 오랜 시간 동안 시스템에 잠복해 있다가 어느 순간 모습을 드러낼 수 있음. 이런 소프트웨어 버그가 시스템 실행 중 발생하면 예측 할 수 없고 손해가 큰 여파를 주는 일시적 실패(transient failure)로 이어질 수 있음. 예를 들면, 흔적을 남기지 않고 데이터베이스를 수리 불가능할 정도로 훼손시키거나, 반복적인 할당/할당해제 사이클로 인한 메모리 누수(leakage)나 팽창(bloating)을 야기하거나, 운영 체제 리소스를 서서히 고갈시킴
  • 일시적 소프트웨어 실패를 다루기 위한 사전 예방적 방법으로 이 논문은 소프트웨어 회춘(software rejuvenation)을 제안함

 

프로세스 에이징(Process aging)

  • 대부분의 클라이언트-서버 시스템에서 서버 프로세스가 (소프트웨어 업그레이드 같은 특별한 기간 동안을 제외하고) 지속적이고 영구적으로 가동될 것이 의도됨
  • 소프트웨어 애플리케이션이 장기간 지속적으로 실행되면 그 프로세스들의 에이징이 일어남(시스템 리소스 사용의 효율성/성능이 서서히 저하됨)
  • 이런 프로세스 에이징 원인으로 메모리 누수(memory leaking), 미반환 파일 락(unreleased file locks), 파일 설명자 누수(file descriptor leaking), 시스템 리소스의 운영 환경에서 데이터 훼손 등이 있다.
  • 프로세스 에이징은 애플리케이션의 성능에 영향을 주다가 결국 애플리케이션이 실패하게 만든다(애플리케이션이 시작된 후 곧바로 실패하기 보다는 에이징에 어느 정도의 시간이 소요되고 결국은 crash가 발생)
  • 프로세스 에이징과 소프트웨어 에이징은 다름. 소프트웨어 에이징(software aging)은 오랜 시간 동안의 요구사항 변화와 유지보수로 인해 애플리케이션 프로그램 소스가 쓸모 없어지는(obsolete) 것과 관련 있으며, 프로세스 에이징(process aging)은 실행이 여러 날 또는 여러 주 계속되는 동안 애플리케이션 프로세스들의 성능이 점차 저하(degraded)되는 것과 관련됨

 

소프트웨어 회춘(Software rejuvenation)

  • 소프트웨어 회춘은 에이징으로 인해 앞으로 나타날 시스템 오류나 성능 저하를 사전에 막기 위해 영구 가동되는 애플리케이션을 깨끗한 내부 상태(a clean internal state)에서 주기적으로 재시작(롤백) 하는 방법이다. , 매 회춘 주기(rejuvenation interval)마다 의도적으로 애플리케이션을 종료시키고 곧바로 재시작 시키는 행위
  • 애플리케이션 재시작을 위해서
    1)
    입력 메시지의 일시적 대기(queuing the incoming messages temporarily),
    2)
    인메모리 데이터 구조 청소(cleaning-up the in-memory data structures),
    3)
    초기 상태 또는 이전 체크포인트 상태로 프로세스를 재초기화(respawning the processes at the initial state or at a previously checkpointed state),
    4)
    어드민 레코드 로깅(logging administrative records) 등의 작업이 수반된다.
  • 회춘 주기는 대상 시스템의 기초 수명, 실패 주기, 경험 등에 기반하여 애플리케이션에 따라 다르게 결정된다.
  • 소프트웨어 회춘을 위해 일정 시간의 서버 다운(, 서비스가 중단됨)이 필수적이지만, 이는 비즈니스 피해가 적은 시간(idle time)에 수행될 수 있는 사전 계획된 다운이므로 에이징으로 인한 오류, 성능 저하, 시스템 다운 등이 발생했을 경우에 비하여 비용면에서 더 효과적이다.

 

 

반응형

+ Recent posts