Linux는 개발자와 엔지니어에게 작업을 "조정"할 수 있는 방법을 제공하여 오픈 소스 커널이 리소스를 관리하는 방식을 조정할 수 있는 수천 개의 개별 매개변수를 제공합니다. 이러한 유형의 조정은 커널을 다시 컴파일하지 않고도 성능을 더 빠르게 향상시킬 수 있지만 가장 숙련된 FOSS 프로그래머에게도 여전히 어려운 작업입니다.
커널 튜닝은 매우 어려운 작업이므로 인간 개발자 대신 인공 지능을 사용하여 이 작업을 처리하려는 시도가 있습니다. 중국 기술 기업 ByteDance는 최근 인간 엔지니어가 과거 데이터를 분석하여 더 나은 튜닝 결정을 내릴 수 있도록 하는 인공 지능 기반 솔루션인 Linux 커널 자동 튜닝의 테스트 결과를 발표했습니다. 이는 인간이 일반적으로 어렵게 여기는 작업입니다.
튜닝을 통해 최적의 Linux 성능을 달성하는 것은 Linux 전문가의 광범위한 실험이 필요한 시간 소모적인 프로세스입니다. 다양한 워크로드에는 다양한 커널 매개변수 세트에 대해 다양한 조정 방법이 필요합니다. ByteDance 개발자 Cong Wang은 회사가 사용하는 것과 같은 대규모 데이터 센터에서는 "수백 가지"의 다양한 워크로드에 대해 Linux 커널을 수동으로 조정하는 것이 거의 불가능하다고 언급했습니다.
커널 조정을 단순화하도록 설계된 도구가 존재하지만 특정 유형의 최적화를 제공합니다. ByteDance의 접근 방식은 최소한의 엔지니어링 투자로 모든 Linux 튜닝 매개변수를 포괄할 수 있는 기술인 커널 튜닝 공간에서 최초의 자동화된 솔루션을 출시하는 것을 목표로 합니다.
Wang의 팀은 Linux의 메모리 관리 시스템 최적화에 특별한 관심을 기울이고 있습니다. Bayesian 최적화와 같은 기계 학습 알고리즘을 사용함으로써 회사는 자동화된 매개변수 조정이 대부분의 Linux 커널 엔지니어가 일반적으로 달성하는 것보다 더 나은 결과를 얻을 수 있음을 발견했습니다.
ByteDance의 자동 조정 도구는 특정 작업 부하 및 하드웨어 구성에 따라 Linux 내부 설정을 자동으로 조정하도록 설계되었습니다. 코어는 모든 상황에서 최적의 성능을 보장하기 위해 동적으로 조정되어 각 컴퓨팅 인스턴스의 코어를 수동으로 조정해야 했던 오랜 요구를 해결합니다.
대부분의 경우 Wang과 동료들의 인공지능 기반 자동 조정이 효과적인 것으로 나타났다. ByteDance에 따르면 머신러닝 알고리즘은 핵심 성능을 실시간으로 모니터링하여 시스템을 동적으로 최적화하고 리소스 사용을 최적화하여 효율성을 향상시킬 수 있습니다. AI 시스템은 또한 사용자 친화적인 인터페이스를 갖추고 있어 제한된 기술 지식을 가진 사용자도 보다 유용한 코어의 혜택을 누릴 수 있습니다. 동시에 고급 사용자는 자동 조정 매개변수를 사용자 정의할 수 있습니다.
ByteDance는 기계 학습 알고리즘이 애플리케이션의 메모리 사용량을 30% 줄이거나 NGINX 서버의 HTTP 네트워크 대기 시간을 최적화하여 수동 조정에 비해 네트워크 성능을 12% 향상시킬 수 있다고 주장합니다. 클라우드 컴퓨팅 및 데이터 센터 시나리오에서 이러한 개선은 상당한 비용 절감과 최적화된 성능으로 이어질 수 있습니다. 개발자들은 기계 학습을 통한 커널 자동 조정이 모든 경우에 작동하지는 않는다는 점을 인정하지만 점점 더 필요해질 것으로 예상합니다.
자세히 알아보려면 설명서를 방문하세요.
https://lpc.events/event/17/contributions/1520/attachments/1152/2582/Linux%20Kernel%20Autotuning.pdf