시스템 부팅 속도를 크게 향상시키는 5가지 필수 systemd 조정
모든 리눅스 사용자가 시스템 부팅 속도에 집착하는 것은 아니지만, 저는 개인적으로 빠르고 깔끔한 부팅을 보는 것을 좋아합니다. SSD를 사용하더라도 병목 현상이 발생하여 시스템 속도를 저하시킬 수 있습니다. Systemd는 이러한 지연을 추적하고 해결할 수 있는 다양한 도구를 제공합니다. 약간의 조정만으로도 안정성을 유지하면서 부팅 시간을 크게 단축할 수 있었습니다.
이러한 개선의 진정한 이점은 단순히 스톱워치 시간을 단축하는 데 그치지 않습니다. 더 빠르게 작동하는 시스템은 반응성이 더 뛰어나고 귀중한 대기 시간을 절약해 줍니다.
이륙 프로세스의 약점 식별
systemd-analyze를 사용하여 부팅 성능 추적
속도를 높이기 전에 무엇이 속도를 늦추는지 알아야 합니다. systemd-analyze 커널과 사용자 공간이 초기화되는 데 걸리는 시간으로 부팅 시간을 간략하게 파악할 수 있습니다. 다음과 결합하면 systemd-analyze blame 서비스별 시작 시간 순으로 정렬된 세부 정보가 표시됩니다. 잘못 설정된 숨겨진 프로그램이든, 전혀 사용하지 않는 프로그램이든, 진짜 원인은 바로 여기에 있습니다.
이 분석을 여러 번 실행하면 이상치 대비 일관성을 파악할 수 있습니다. 일부 서비스는 장치 감지로 인해 간헐적으로 사용량이 급증하는 반면, 다른 서비스는 지속적으로 사용량이 많습니다. 가장 사용량이 많은 서비스에 집중하면 최소한의 노력으로 최대의 개선 효과를 얻을 수 있습니다. 저는 일반적으로 변경하기 전에 출력 사본을 저장하여 진행 상황을 객관적으로 측정합니다.
또한 사용할 가치가 있습니다 systemd-analyze critical-chain종속성이 부팅 순서에서 어떻게 정렬되는지 보여주는 도구입니다. 다른 필수 작업을 방해하는 서비스는 재정렬 또는 비활성화의 주요 대상입니다. 이 도구를 사용하면 추측에 의존하는 대신 정보에 기반한 조정을 통해 시작 지연을 실질적으로 줄일 수 있습니다.
백그라운드에서 실행되는 서비스를 줄이세요
실제로 사용하지 않는 서비스를 비활성화하세요.
시간이 많이 걸리는 작업을 파악한 후 다음 단계는 불필요한 작업을 줄이는 것입니다. 많은 Linux 배포판에서는 다음을 허용합니다. 기본적으로 활성화된 서비스가 모든 사용자에게 필요하지는 않을 수 있습니다. 예를 들어, 프린터 드라이버나 Bluetooth 관리자는 프린터나 Bluetooth 장치가 없는 기기에서도 백그라운드에서 실행되는 경우가 많습니다. 이러한 서비스를 비활성화하면 시작 시 귀중한 시간을 절약할 수 있습니다.
이를 관리하는 가장 쉬운 방법은 명령을 사용하는 것입니다. systemctl disable 서비스 이름 뒤에 붙습니다. 이렇게 하면 부팅 시 실행되지 않고, 필요한 경우 수동으로 시작할 수 있습니다. 절대 사용하지 않을 서비스의 경우 다음 명령을 사용합니다. systemctl mask 한 걸음 더 나아가 이러한 프로그램을 완전히 차단합니다. systemd에서 실행해야 하는 프로그램이 적을수록 컴퓨터가 사용 가능한 상태에 더 빨리 도달합니다.
서비스를 임의로 비활성화하지 마세요. 각 서비스가 어떤 역할을 하는지, 그리고 다른 서비스에서 어떤 서비스를 사용하는지 자세히 살펴보세요. 변경하기 전에 컴퓨터를 백업하는 것이 좋습니다.
물론, 이 작업에는 약간의 주의가 필요합니다. 필수적인 기능을 비활성화하면 필요한 기능에 문제가 발생할 수 있으므로, 한 번에 하나씩 변경하고 각 변경 후 테스트하는 것이 좋습니다. 며칠 동안 시스템을 불안정하게 만들지 않고도 더 부드럽고 빠른 부팅 프로필을 만들 수 있습니다.
Systemd에서 병렬 처리 활용하기
종속성을 최적화하여 시작 속도를 높이세요
systemd가 기존 구성 시스템에 비해 갖는 장점 중 하나는 서비스를 병렬로 시작할 수 있다는 것입니다. 각 프로그램이 로드될 때까지 기다렸다가 다음 프로그램을 시작할 필요 없이, 독립적인 프로그램을 동시에 실행합니다. 즉, CPU와 디스크를 더 효율적으로 사용하고 자연스럽게 작업 속도를 향상시킵니다. 핵심은 종속성을 올바르게 정의하여 서비스들이 불필요하게 서로를 차단하지 않도록 하는 것입니다.
명령을 사용하여 종속성 관계를 확인할 수 있습니다. systemctl list-dependencies 또는 모듈 파일을 직접 살펴보세요. 서비스가 실제로 필요하지 않은 것을 기다리고 있는 경우 해당 서비스의 구성을 수정할 수 있습니다. 다음과 같은 지시문을 추가하면 됩니다. After= 또는 Requires= 다른 서비스에 비해 서비스 시작 시간을 조정합니다. 불필요한 종속성을 제거하면 유휴 대기를 방지하고 병렬 처리를 더 효과적으로 활용할 수 있습니다.
또 다른 방법은 일부 서비스에 대해 소켓 활성화를 활성화하는 것입니다. 이렇게 하면 systemd가 부팅할 때마다 서비스를 시작하는 대신, 소켓에 액세스할 때만 서비스를 시작합니다. 이렇게 하면 부팅 시간이 단축될 뿐만 아니라 백그라운드 시스템 리소스 사용량도 줄어듭니다. 올바르게 구성하면 시스템이 더 빠르고 가벼워집니다.
속도 저하를 유발하는 서비스 숨기기
숨긴 내용을 다시 활성화하지 않도록 주의하세요.
때로는 서비스를 비활성화하는 것만으로는 충분하지 않습니다. 다른 패키지나 종속성을 업데이트하면 다시 활성화될 수 있기 때문입니다. 서비스를 숨기는 것이 가장 효과적인 해결책입니다. 서비스를 /dev/null 따라서 실수로 실행되지 않습니다. 이 기능은 설정에 필수적이지 않은 서비스에 특히 유용합니다. 예를 들어 선택한 네트워크 관리자와 충돌하는 네트워크 드라이버가 있습니다.
서비스를 숨기려면 다음 명령을 사용할 수 있습니다. systemctl mask 모듈 이름 뒤에 붙습니다. 이제 다른 프로세스가 실행을 시도하더라도 systemd는 거부합니다. 언제든지 마음이 바뀌면 다음 명령을 사용하여 숨김을 해제할 수 있습니다. systemctl unmask원치 않는 서비스가 부팅 시퀀스에 다시 나타나지 않아 안심할 수 있습니다.
단점은 잘못된 서비스를 숨기면 혼란을 야기할 수 있다는 점입니다. 특히 다른 서비스가 간접적으로 해당 서비스에 의존하는 경우 더욱 그렇습니다. 그래서 저는 서비스를 숨기기 전에 항상 종속성 트리를 다시 확인합니다. 하지만 제대로 숨기면 업데이트가 있더라도 시스템이 지속적으로 최적화됩니다.
데스크톱 세션을 시작하는 방법 개선
디스플레이 관리자를 편집하고 속도를 위해 로그인하세요
데스크톱 사용자의 경우 부팅 과정의 마지막 단계는 그래픽 세션인 경우가 많습니다. GDM, LightDM, SDDM과 같은 디스플레이 관리자는 자체적인 시작 시간을 추가할 수 있습니다. 이러한 관리자를 수정하거나 더 가벼운 버전으로 전환하면 눈에 띄는 차이를 만들 수 있습니다. 예를 들어, LightDM은 무거운 하드웨어보다 적당한 사양의 하드웨어에서 더 빠른 경향이 있습니다.
세션 설정에서 자동으로 시작되는 애플리케이션도 확인해 볼 만합니다. 많은 데스크톱 환경은 기본적으로 작은 도우미 애플리케이션, 업데이터 또는 클라우드 동기화 클라이언트를 실행합니다. 이러한 애플리케이션의 실행을 실제로 사용하는 애플리케이션으로 제한하면 데스크톱 시작 속도가 향상될 뿐만 아니라 로그인 후 불필요한 작업이 줄어듭니다. 이는 시스템 서비스를 비활성화하는 것과 같은 원리이지만, 사용자 수준에서 적용됩니다.
시스템이 그래픽 모드와 다중 사용자 모드 사이에서 어떻게 전환되는지 실험해 볼 수도 있습니다. 특정 서비스를 데스크톱 로드 후까지 지연시키면 사용 가능한 세션에 더 빨리 접근할 수 있습니다. 이처럼 작은 조정들이 모여 느린 시작을 눈에 띄게 매끄러운 환경으로 만들어 주는 경우가 많습니다.
systemd 수정이 일상 생활에서 유용한 이유
이러한 조정의 진정한 이점은 단지 몇 초를 절약하는 데 그치지 않습니다. 빠르게 시작되는 시스템은 반응 속도가 더 빠르고 대기 시간도 줄어듭니다. 서비스를 분석, 비활성화, 숨기기, 미세 조정함으로써 사용자의 필요에 맞춰 더욱 원활한 환경을 구축할 수 있습니다. 문제가 발생하면 변경 사항을 쉽게 되돌릴 수 있지만, 일단 설정되면 유지되는 경향이 있습니다. 저에게 이러한 작은 이점들은 매일 누적되어, 예상대로 빠르게 느껴지는 Linux 시스템을 만들어냅니다.
댓글이 닫혀있다.