systemd-journal-flush.service의 사용법은 무엇입니까?


14

시스템 부팅 시간이 느려집니다.

비활성화 할 수 있습니까?

부팅시 비활성화하면 어떻게됩니까?

우분투 버전 18.04를 사용하고 있습니다.

답변:


14

systemd-journal-flush.service경우, / var에 / 로그 / 저널에에 / 실행 / 로그 / 저널 저장된 로그 데이터를 플러시 저널 데몬을 요청 persistent스토리지가 사용 가능합니다. 대량의 로그 파일이있는 경우 부팅 속도가 느려집니다. 또한 디스크 (포함 /var/log)는 쓰기 가능한 모드로 마운트되어야합니다.

요약하자면, 부팅 중에 확인되고 새 로그 데이터를 추가하면 부팅 시간이 느려집니다.

journalctl 로그 크기 유형을 확인하려면

journalctl --disk-usage

플러시 처리의 시간 및 디스크 공간 정보를 얻으려면 다음 명령을 입력하십시오.

journalctl -b --unit systemd-journald

해당 출력은 다음과 같습니다

-- Logs begin at Sat 2018-12-08 00:40:23 CET, end at Mon 2018-12-10 19:40:27 CET. --
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Journal started
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Runtime journal (/run/log/journal/265c93c062bf4c8da41abfe2ae793452) is 4.7M, max 38.3M, 33.5M free.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: Time spent on flushing to /var is 7.066904s for 132 entries.
Dec 10 12:51:38 ubuntu01 systemd-journald[479]: System journal (/var/log/journal/265c93c062bf4c8da41abfe2ae793452) is 128.0M, max 256.0M, 128M free.


당신은 할 수 있습니다

  • 서비스 비활성화 (권장되지 않음)

    그러면 모든 로그 데이터가 디스크에 기록되는 것은 아닙니다. 부팅 결함을 디버깅 할 때 성가신.


  • journalctl --vacuum명령 사용

    에서 journalctl -h

    --vacuum-size = BYTES 디스크 사용량을 지정된 크기 이하로 줄입니다.
    --vacuum-files = INT 지정된 수의 저널 파일 만 남겨 둡니다.
    --vacuum-time = TIME 지정된 시간보다 오래된 저널 파일을 제거합니다.

    따라서

     sudo journalctl --vacuum-size=1G --vacuum-time=5d --vacuum-files=5
    


  • 저장 유형 변경 systemd-journal-flush.service

    먼저 저장 유형을 확인하십시오

     systemctl cat systemd-journal-flush.service  | grep -i storage
    

    에서 man journald.conf

    저장 =

    저널 데이터를 저장할 위치를 제어합니다. "휘발성", "지속적", "자동"및 "없음"중 하나입니다.

    " 휘발성 "인 경우 저널 로그 데이터는 메모리에만 저장됩니다 (예 : / run / log / journal 계층 구조 (필요한 경우 작성 됨)).

    " 지속적 "인 경우 , 데이터는 디스크에, 바람직하게는 / var / log / journal 계층 아래 (필요한 경우 생성됨) 아래에 / run / log / journal (필요한 경우 생성됨)로 대체됩니다. 초기 부팅 및 디스크 쓰기 가능하지 않은 경우.

    " auto "는 "persistent"와 유사하지만 필요한 경우 / var / log / journal 디렉토리가 작성되지 않으므로 로그 데이터의 위치를 ​​제어합니다.

    " none "은 모든 스토리지를 끄고 수신 된 모든 로그 데이터가 삭제됩니다. 그러나 콘솔, 커널 로그 버퍼 또는 syslog 소켓과 같은 다른 대상으로 전달해도 여전히 작동합니다. 기본값은 "auto"입니다.

    파일 편집

    sudo nano /etc/systemd/journald.conf
    

    저널 섹션에서 주석을 제거하고 변경하십시오.

    Storage=auto
    SystemMaxFileSize=1G
    SystemMaxFiles=5
    

    저장하고 재부팅하십시오.



왜 거대한 로그 파일이 부팅 속도를 늦출 지 모르겠습니다. / run / log / journal에서 로그를 플러시하지만 마지막 부팅 이후의 로그입니다
solsTiCe

1
나는 확실하지 않다. 또한 systemd-user-sessions.service에 대한 systemd-user-sessions-flush.service의 의존성이 될 수 있습니다 (https://github.com/systemd/systemd/pull/10502 참조). 그러나 로그 파일을 1GB 미만으로 제한하면 부팅 시간이 단축되는 것을 경험했습니다. systemd / journal / * 코드를 읽었지만 흥미로운 것은 발견되지 않았습니다.
abu_bua

1
압축 해제 (lz4) 때문일 수 있습니까? 추가 로그 데이터는 단순히 파일로 스트리밍되지 않습니다. 보다 빠른 검색 수정을위한 해시 테이블 및 해시 테이블이 제공됩니다.
abu_bua

1
저널 파일과 / var / log 파일의 관계에 대한 의견이 도움이 될 것입니다. 나는 그것에 대해 명확하지 않지만 저널이 활성 로깅이고 플러시되면 일반 / var / log 파일의 디스크에 활성 데이터를 쓰는 중입니까?
pbhj

디스크가 먼저 마운트되어 있어야하므로 부팅하는 동안 데이터를 디스크에 쓸 수 없습니다.
abu_bua

3

시스템 개발자 홈페이지 의이 게시물에 따르면 Unit 파일 을 변경하여 수정할 수 있습니다 .

이렇게하려면 /lib/systemd/system/systemd-journal-flush.service예를 들어

sudo vim /lib/systemd/system/systemd-journal-flush.service

과를 변경 의존하기 전에 에서

 Before=systemd-user-sessions.service systemd-tmpfiles-setup.service

 Before=systemd-tmpfiles-setup.service

이 수정 사항은 시스템 버전>  v240에 대해 자동으로 변경됩니다.

파일을 저장하는 것을 잊지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.