느린 최대 절전 모드를 디버깅하는 방법

느린 최대 절전 모드를 디버깅하는 방법

기본 Ubuntu 저장소에서 제공하는 대로 현재 64비트 커널 5.4.0-74-generic을 사용하여 최신 Ubuntu 20.04를 실행하는 여러 대의 PC/노트북이 있습니다. 그 중 Intel i3 CPU를 탑재한 다소 평범한 PC 중 하나는 18.04에서 20.04로 업그레이드한 이후 최대 절전 모드로 전환하는 데 2분 조금 넘게 걸립니다.

최대 절전 모드 디버깅에 대해 찾은 다양한 리소스는 대부분 절전 모드 해제 또는 일시 중단 전체 실패에 대해 다루지만 매우 오래 걸리는 디스크 일시 중지에 대해서는 다루지 않습니다. 깨우기는 잘 작동하며 몇 초 밖에 걸리지 않습니다. 최대 절전 모드에 너무 오래 걸리는 이유를 어떻게 알 수 있나요? 최대 절전 모드 와 같은 것이 있습니까 systemd-analyze blame?

지금까지 in을 initcall_debug no_console_suspend추가 하면 콘솔이 표시되지만 오랜 시간을 설명하는 내용은 표시되지 않습니다. 네트워크 인터페이스에 대해 "Detected Hardware Unit Hang"이 표시됩니다. 하지만 이는 최대 절전 모드가 시작될 때 나타나는 현상이며 예상된 동작인 것 같습니다.GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub

나는 systemctl hibernate그것을 시작하는 데 사용합니다. 다른 로그인된 사용자나 사용자 프로세스가 없는 콘솔에서 루트로 실행하더라도 전원이 꺼질 때까지 2분 정도 걸립니다.

답변1

나의 충고:

  1. 를 결정하다@askubuntu.com에 질문하세요그리고 진지하게 생각하세요. ;)데이터를 수집하고, 최소한의 설정으로 문제를 재현하고, 구체적으로 설명하세요.

  2. 스왑 공간이 충분한지 확인하세요.이 명령은 freeRAM("Mem") 및 스왑의 양을 제공합니다. 총 스왑은 총 RAM보다 커야 합니다. 어느 시점에서 RAM을 추가했지만 스왑 파티션의 크기를 늘리지 않았다는 것을 깨달았습니다.편집(2021-06-07):크기 차이는 ~1GB였습니다. 크기를 늘린 후 최대 절전 모드가 반복적으로 빨라졌는데, 이는 여전히 스왑 파티션을 보유하고 있는 SSD의 쓰기 속도 변경으로 인한 아티팩트라고 생각됩니다. (다음 항목도 참조하세요.)

  3. 최대 절전 모드는 얼마나 빨라야 합니까?기본적으로 디스크 일시 중지 중에 모든 RAM이 디스크에 기록됩니다. RAM 용량과 디스크 쓰기 속도에 따라 필요한 시간이 결정됩니다. 내 스왑 파티션을 찾고 dd if=/dev/zero. dd108MB/s의 속도를 보고했습니다. 7GB를 쓰는 데 약 65초가 걸렸습니다. 내 PC에는 8GB가 있습니다. 따라서 최대 절전 모드는 최소 1분 정도 소요될 것으로 예상됩니다.

  4. 하려고 노력하다부품을 제거하여 디버그시스템: 필요하지 않은 하드웨어를 분리합니다. 처음 로그인 여부에 관계없이 새로 부팅한 직후 최대 절전 모드로 전환됩니다.

  5. 추가하다initcall_debug no_console_suspend질문에 설명된 대로 커널 명령줄에 추가합니다.

현재로서는 느린 최대 절전 모드를 경험하는 이유는 다음과 같습니다. RAM을 추가했기 때문에 최대 절전 모드가 더 오래 걸립니다. 추가된 RAM에 맞게 스왑 공간을 늘리는 것을 잊었습니다(스왑은 7G이지만 RAM은 8G입니다). SSD는 시간이 지남에 따라 성능이 저하되었습니다(적어도 2배 이상).

추가 및 권장 자료:

관련 정보