Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.11. 사용자 공간에서의 최적화

시스템 하드웨어가 수행하는 작업의 양을 줄이는 것은 전력 소모를 줄이는 기본입니다. 3장. 핵심 인프라와 기법에 설명한 변경이 시스템이 전원을 덜 소비하는 다양한 상태로 동작하도록 해 주지만, 사용자 공간의 어플리케이션이 시스템 하드웨어에 불필요한 작업을 요청한다면, 하드웨어가 그런 에너지 절약 상태로 들어갈 수 없습니다. Red Hat Enterprise Linux 6를 개발하는 동안, 하드웨어에 불필요한 요청을 줄이기 위해 다음과 같은 영역에 대한 분석이 이루어졌습니다.
CPU깨우기의 감소

Red Hat Enterprise Linux 6는 틱 없는 커널(tickless kernel)을 사용합니다(3.4절. “틱없는 커널” 참조). 이는 CPU가 더 깊은 유휴 상태에 더 오래 있도록 해 줍니다. 하지만, 타이머 틱(timer tick)만이 과도하게 CPU를 깨우는 원인은 아니며, 어플리케이션에서 함수를 호출하는 것도, CPU가 유휴 상태에 들어가거나, 그 상태에 남아있지 못하는 원인이 됩니다. 불필요한 함수 호출을 50개 이상의 어플리케이션에서 감소시켰습니다.

저장소와 네트워크 IO의 감소

저장소 장치와 네트워크 인터페이스에 대한 입출력(IO)이 있으면 장치들이 전력을 소비하게 됩니다. 유휴시 저전력 상태를 가질 수 있는 저장소와 네트워크 장치(예: ALPM이나 ASPM)에서, 이러한 트래픽은 해당 장치가 유휴 상태에 들어가거나 남아있는 것을 막게 되며, 하드 드라이브가 사용중이 아닐 때 회전수를 감소시키지 못하게 됩니다. 저장소에 대한 불필요하거나 과도한 요청을 몇몇 어플리케이션에서 최소화 시켰습니다. 특히, 하드 드라이브를 계속 돌게 만드는 몇몇 어플리케이션들을 수정했습니다.

Init 스크립트 분석

사용 여부와 관계 없이 자동으로 시작되는 서비스들은 시스템 자원을 낭비할 가능성이 매우 큽니다. 대신, 서비스들은 가능한 한 디폴트로 "미사용"이거나 "요청시 사용"으로 설정되야 합니다. 예를 들어 Bluetooth를 지원하는 BlueZ 서비스는 예전에는 Bluetooth 장치의 존재 여부와 관계 없이 자동으로 시스템 시작시 실행되었습니다. 이제는 BlueZ initscript가 Bluetooth 장치가 시스템에 있는지를 서비스 시작 전에 검사하도록 변경되었습니다.