IOTOP이 불평합니다: CONFIG_TASK_DELAY_ACCT가 커널에서 활성화되지 않았습니다.

IOTOP이 불평합니다: CONFIG_TASK_DELAY_ACCT가 커널에서 활성화되지 않았습니다.

주위를 둘러보니 표준 수정 사항은 커널 부팅 매개변수에 추가하는 것이었습니다.

systemd-boot를 사용하면 내 arch.conf는 다음과 같습니다:

 title   Arch Linux
 linux   /vmlinuz-linux
 initrd  /intel-ucode.img
 initrd  /initramfs-linux.img
 options root=PARTUUID="98b3b4f7-e7f9-6f49-be81-a2ee709c7a3e" rw

options항목 에 CONFIG_TASK_DELAY_ACCT를 어떻게 추가합니까 ?

다른 줄?

아니면 일부 구분 기호를 사용하여 기존 줄에 추가하시겠습니까?

어떤 값으로 설정해야 합니까?

답변1

실제로 발생한 iotop 오류에 대한 간단한 수정 방법이 있지만 여기에서 거기까지 가는 것은 우회적인 방법입니다.

options delayacct[TL;DR: systemd-boot를 사용하는 경우 sd-boot 항목 구성 파일 끝에 새 줄을 추가하세요. GRUB에는 해당 구문이 있습니다. 선호될 수 있는 대체 비부팅 관리자 구성 옵션도 있습니다. ]

@Artem이 맞습니다. CONFIG_TASK_DELAY_ACCT커널 구성 또는 빌드 옵션입니다. 그 사람도 맞습니다. 따라서 이는 커널이 컴파일되는 방식과 관련이 있으며 런타임에 추가할 수 없습니다., 시작 시.

CONFIG_TASK_DELAY_ACCT많은 배포판에서 이 옵션을 사용하여 커널을 컴파일하지만 기본적으로 비활성화하기 때문에 iotop은 "y"로 설정된 경우에도 종종 이 오류를 발생시킵니다 .

이는 iotop 오류 메시지의 문자 그대로의 의미에 관계없이 커널을 다시 컴파일하는 것은 시간 낭비일 수 있음을 의미합니다. 확인하려면 커널 구성 파일을 확인하세요. 파일(구성-커널 버전) 일반적으로 커널(vmlinuz-커널 버전) 및 initrd(initrd.img-커널 버전)문서,예를 들어또는 EFI 시스템 파티션이 설치된 위치에 따라 달라질 /boot수 있습니다 . /efi그러니,예를 들어:

grep TASK_DELAY_ACCT /boot/config*

이는 다음과 같은 결과를 반환할 수 있습니다:

/boot/config-5.15.0-41-generic:CONFIG_TASK_DELAY_ACCT=y
/boot/config-5.15.0-43-generic:CONFIG_TASK_DELAY_ACCT=y

=y커널이 이 옵션으로 컴파일되었음을 알려줍니다 . 이로 인해 iotop 오류 메시지가 덜 신비해지지는 않지만 커널이 정상임을 확인합니다. 그렇다면 해당 커널 매개변수를 kernel.task_delayacct활성화하여 iotop 오류를 수정해야 하는지 확인하십시오. 매개변수를 확인하려면 다음을 수행하십시오.

cat /proc/sys/kernel/task_delayacct

0이 반환되면 비활성화된 것입니다. 1. 활성화되었습니다. 이 매개변수를 활성화하려면 다음 중 하나를 수행하십시오.

  • 현재 세션의 경우:

    echo 1 > /proc/sys/kernel/task_delayacct

    이는 즉시 적용되며 재부팅이 필요하지 않습니다.

  • 보다 영구적으로 만들려면 새 줄 /etc/sysctl.conf이나 포함된 .conf 파일 에 다음을 추가하세요 /etc/sysctl.d.

    kernel.task_delayacct=1

    아니면 이렇게 하세요:

    # echo "kernel.task_delayacct=1" >> /etc/sysctl.d/20-kernel-task-delayacct.conf

    적용하려면 다시 시작하세요.

  • delayacct부팅 관리자에 따라 커널 명령줄에 추가됩니다 . 이것은 systemd-boot에 관해 질문할 때 취하는 접근 방식입니다.

    GRUB2의 경우, 다음 줄을 추가하거나 편집하여 /etc/default/grub읽으세요. GRUB_CMDLINE_LINUX_DEFAULT="delayacct"

    그런 다음 파일을 저장하고 닫은 후 다음을 수행하십시오.

    # update-grub

    적용하려면 다시 시작하세요.

    시스템 시작의 경우, 편집하세요입구.conf 파일을 만들고 새 줄을 추가하면 됩니다.

    options delayacct

    시스템 부팅특허options는 부트로더 항목 파일에 여러 번 나타나므로 기존 키를 편집하는 대신 추가 줄을 추가하는 것만으로도 options충분합니다.

    적용하려면 다시 시작하세요.

답변2

이것은 커널이다세워옵션이므로 런타임에 "추가"할 수 없습니다.

자신만의 커널을 빌드하거나 관리자에게 이 옵션을 사용하여 커널을 빌드하도록 요청하십시오. 일부 커널 옵션은 다른 옵션에 의존하고 이러한 종속성은 매우 바람직하지 않을 수 있으므로 이를 수행할 수도 있고 수행하지 않을 수도 있습니다. 예를 들어 커널 속도가 크게 느려질 수 있습니다.

관련 정보