Computer >> 컴퓨터 >  >> 시스템 >> Linux

불필요한 서비스를 꺼서 Linux 부팅 시간 단축

백그라운드에서 실행되는 수많은 서비스로 인해 점점 더 많은 운영 체제가 비대해지고 있습니다. CPU 시간을 많이 사용하지 않을 수도 있지만 부팅 시간과 RAM 사용량이 늘어납니다. 다행스럽게도 오픈 소스 운영 체제는 원하는 대로 수행할 수 있는 성능과 자유를 제공합니다. 이는 필요하지 않은 항목을 비활성화하거나 제거할 수 있음을 의미합니다. 여기에서는 Linux 부팅 시간을 개선하기 위해 불필요한 서비스를 비활성화하는 방법을 보여줍니다.

참고 :서비스를 제거하는 대신 비활성화하는 방법을 보여줍니다. 서비스를 비활성화하면 영구적으로 문제가 발생할 위험이 줄어듭니다. 유용한 기능이 작동하지 않는 것을 발견한 경우 간단히 서비스를 다시 활성화하여 이전 방식으로 돌아갈 수 있습니다.

목차

각 서비스를 로드하는 데 걸리는 시간 분석

대부분의 Linux 기반 운영 체제는 기본적으로 Systemd를 사용합니다. 여기에 포함된 유틸리티 중에는 시스템 부팅 속도를 분석할 수 있는 프로그램이 있습니다. 구체적으로 부팅하는 데 필요한 총 시간과 각 서비스를 로드하는 데 걸리는 시간을 보여줍니다. 일부 서비스는 병렬로 로드됩니다. 따라서 하나는 로드하는 데 2초가 걸리고 다른 하나는 3초가 필요하다고 해서 반드시 총 5초가 필요하다는 의미는 아닙니다. 그보다 훨씬 적을 수도 있습니다.

터미널 에뮬레이터를 열고 다음 명령을 입력하세요:

systemd-analyze
불필요한 서비스를 꺼서 Linux 부팅 시간 단축

이는 Linux 커널 및 핵심 시스템 서비스를 초기화하는 데 걸리는 시간을 보여줍니다. 데스크톱 애니메이션이나 사용자 응용 프로그램이 로드를 완료하는 데 필요한 시간은 고려하지 않습니다.

그러나 다음 명령을 사용하면 그래픽 인터페이스가 초기화하는 데 필요한 시간을 확인할 수 있습니다:

systemd-analyze critical-chain graphical.target
불필요한 서비스를 꺼서 Linux 부팅 시간 단축

이는 그래픽 목표에 도달하는 서비스 체인을 보여줍니다. 유용하기는 하지만 일부 배경 구성 요소가 나중에 계속 로드될 수 있으므로 이는 데스크톱이 완전히 유휴 상태가 되는 순간이 아니라 기술적인 이정표를 나타냅니다.

참고 :데스크탑 환경 내에서 자동으로 시작되는 프로그램은 일반적으로 데스크탑별 자동 시작 설정이나 시스템 사용자 서비스를 통해 관리됩니다.

마지막으로, 이 튜토리얼의 목적에 가장 유용한 명령은 다음과 같습니다:

systemd-analyze blame
불필요한 서비스를 꺼서 Linux 부팅 시간 단축

화살표 키나 PAGE UP 및 PAGE DOWN을 사용하여 목록을 탐색할 수 있습니다. 종료하려면 q를 누르세요.

Systemctl을 사용하여 불필요한 서비스 비활성화

이전 사진에서 볼 수 있듯이 snapd 같은 일부 서비스는 로드하는 데 몇 초가 걸립니다. SSD에서는 이는 무시할 수 있는 수준입니다. 그러나 기존 하드 디스크에서는 이러한 종류의 시간이 몇 초 정도에 불과하며 결국에는 많은 시간이 소요됩니다.

컨테이너화된 애플리케이션 스냅에 대한 액세스를 제공하는 snapd 서비스가 필요하지 않다고 가정해 보겠습니다. 다음 명령으로 비활성화할 수 있습니다:

sudo systemctl disable snapd.service

재부팅 후에도 특정 조건에서는 계속해서 빠른 시작이 나타날 수 있습니다. 이는 snapd가 소켓 활성화를 사용하여 서비스 자체가 비활성화된 경우에도 요청 시 시작할 수 있기 때문에 발생합니다.

다음을 사용하여 관련 단위를 식별할 수 있습니다:

systemd-analyze blame | grep snap
불필요한 서비스를 꺼서 Linux 부팅 시간 단축

이는 어떤 Snap 관련 장치가 시작 활동에 기여하고 있는지 식별하는 데 도움이 됩니다.

소켓 활성화 서비스 처리

snapd를 포함한 일부 서비스는 소켓 활성화를 사용합니다. 이는 서비스가 비활성화된 경우에도 누군가가 서비스와 통신을 시도할 때 서비스가 계속 시작될 수 있음을 의미합니다.

재부팅 후에도 snapd가 계속 나타나는 경우 snapd.socket 등 관련 단위 또는 snapd.seeded.service 책임이 있을 수 있습니다. 이런 경우에는 서비스와 해당 소켓을 마스킹하는 것이 더 효과적입니다:

sudo systemctl mask snapd.service
sudo systemctl mask snapd.socket

마스킹은 서비스를 완전히 차단하므로 종속성 또는 소켓이 서비스를 시작할 수 없습니다. 그러나 특히 시스템 업데이트나 애플리케이션을 위해 Snap 패키지를 사용하는 배포판에서는 이 접근 방식을 주의 깊게 사용하십시오.

또한 이 맥락에서 "비활성화"와 "마스킹"을 혼동하지 않도록 주의하세요. 서비스를 비활성화하면 systemd가 자동으로 시작하지 않도록 지시합니다. 마스킹은 서비스가 전혀 시작되지 않도록 함으로써 더욱 발전합니다. 대부분의 상황에서는 비활성화만으로 충분합니다. 마스킹은 계속해서 다시 시작되거나 시스템에서 확실히 불필요한 서비스에 유용합니다.

또한 설정에 따라 다음과 같이 안전하게 비활성화할 수 있는 추가 서비스를 찾을 수도 있습니다.

avahi-daemon.service
ModemManager.service
thermald.service

그러나 서비스를 비활성화하기 전에 항상 서비스를 조사하십시오. 데스크탑 시스템에서는 불필요한 것이 노트북이나 서버에서는 필수적일 수 있습니다.

최종 생각

불필요한 서비스를 비활성화하면 특히 기존 하드 드라이브를 사용하는 시스템에서 부팅 시간을 줄이고 시스템 리소스를 확보할 수 있습니다. 최신 SSD 기반 시스템에서도 사용하지 않는 서비스를 정리하면 시스템을 깨끗하고 효율적으로 유지하는 데 도움이 됩니다.

또한 서비스 관리를 위해 Stacer와 같은 그래픽 도구가 존재하지만 제어가 제한되거나 오래된 기능을 제공하는 경우가 많습니다. 배포 전반에 걸쳐 일관되고 정확한 관리를 위해 systemctl 명령줄 도구는 여전히 가장 안정적인 옵션입니다.