(내 시스템은 Debian 11 Bullseye + GNOME 3.38.6입니다)
저는 저장 목적으로만 Seagate 2TB를 가지고 있는데 소음이 심하기 때문에 다음을 사용하여 스토리지에 액세스하지 않는 한 절전 모드로 전환합니다.
sudo hdparm -Y /dev/sda
위의 작업을 수행하면 하드 드라이브가 절전 모드로 전환되지만 몇 분 후에 무언가가 하드 드라이브를 깨우는 현상이 발생하는데, 무엇인지는 모르겠습니다.
로그를 확인한 결과 하드 드라이브가 다시 깨어나기 전에 10분마다 다음과 같은 일이 발생하는 것으로 나타났습니다.
Jun 09 20:36:59 user0 kernel: ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Jun 09 20:36:59 user0 kernel: ata2.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded
Jun 09 20:36:59 user0 kernel: ata2.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out
Jun 09 20:36:59 user0 kernel: ata2.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out
Jun 09 20:37:02 user0 kernel: ata2.00: ACPI cmd ef/10:06:00:00:00:00 (SET FEATURES) succeeded
Jun 09 20:37:02 user0 kernel: ata2.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out
Jun 09 20:37:02 user0 kernel: ata2.00: ACPI cmd b1/c1:00:00:00:00:00 (DEVICE CONFIGURATION OVERLAY) filtered out
Jun 09 20:37:02 user0 kernel: ata2.00: configured for UDMA/133
이 문제의 원인은 무엇이며 어떻게 방지할 수 있나요?
고쳐 쓰다. 위 메시지는 HDD가 절전 상태일 때만 나타납니다. 그렇지 않으면 로그에서 반복되지 않습니다.
답변1
다음은 이 문제의 원인을 이해하는 데 도움이 될 수 있지만 문제를 해결하는 데는 도움이 되지 않습니다.
로 컴파일된 커널이 필요합니다 CONFIG_BLK_DEV_IO_TRACE=y
(명령을 사용하여 이를 확인할 수 있지만 $ zcat /proc/config.gz |grep BLK_DEV_IO_TRACE
커널이 로 컴파일된 경우에만 가능 CONFIG_IKCONFIG_PROC=y
).
이제 가지고 있으니 사용하시면 됩니다btrace
/blktrace
(데비안 패키지는블록 추적)를 루트로 사용합니다. 예를 들면 다음과 같습니다.
$ sudo btrace /dev/sdc
또는 동등하게:sudo blktrace -d /dev/sdc -o - | blkparse -i -
그러면 다음과 같은 출력이 제공되지만 /dev/sdc에 액세스할 때만(sda를 직접 사용하여):
8,32 4 1 0.000000000 35200 Q FWS [sync]
8,32 4 2 0.000005329 35200 G FWS [sync]
8,32 4 3 0.000024868 166 D FN [kworker/4:1H]
8,32 0 1 0.005341892 35201 D R 36 [sdparm]
8,32 0 2 0.005360604 12 C R [0]
8,32 0 3 0.005483027 35201 D N 0 [sdparm]
8,32 2 1 0.008090821 13354 D R 32 [(null)]
8,32 2 2 0.008109065 24 C R [0]
8,32 2 3 0.008274033 13354 D R 64 [(null)]
8,32 2 4 0.008290535 24 C R [0]
8,32 2 5 0.008435087 13354 D R 64 [(null)]
8,32 2 6 0.008451221 24 C R [0]
8,32 2 7 0.008649311 13354 D R 8256 [(null)]
8,32 2 8 0.008665588 24 C R [65415]
8,32 2 9 0.008839399 13354 D R 8 [(null)]
8,32 2 10 0.008856004 24 C R [0]
8,32 2 11 0.008905781 13354 D R 512 [(null)]
8,32 2 12 0.008913061 24 C R [0]
8,32 2 13 0.008957477 13354 D R 512 [(null)]
8,32 2 14 0.008963625 24 C R [0]
8,32 2 15 0.017343228 35206 Q RA 35156656000 + 8 [udevd]
8,32 2 16 0.017344264 35206 G RA 35156656000 + 8 [udevd]
8,32 2 17 0.017344513 35206 P N [udevd]
8,32 2 18 0.017344733 35206 U N [udevd] 1
8,32 2 19 0.017344993 35206 I RA 35156656000 + 8 [udevd]
8,32 2 20 0.017346335 35206 D RA 35156656000 + 8 [udevd]
8,32 2 21 0.017613109 35206 Q RA 35156655864 + 8 [udevd]
8,32 2 22 0.017613575 35206 G RA 35156655864 + 8 [udevd]
8,32 2 23 0.017613672 35206 P N [udevd]
8,32 2 24 0.017613775 35206 U N [udevd] 1
8,32 2 25 0.017613935 35206 I RA 35156655864 + 8 [udevd]
8,32 2 26 0.017614656 35206 D RA 35156655864 + 8 [udevd]
8,32 2 27 0.017728317 35206 Q RA 35156656064 + 8 [udevd]
8,32 2 28 0.017728616 35206 G RA 35156656064 + 8 [udevd]
8,32 2 29 0.017728680 35206 P N [udevd]
8,32 2 30 0.017728750 35206 U N [udevd] 1
sync, sdparm, udevd 및 kernel kworker와 같은 일부 프로세스 이름은 /dev/sdc를 사용하여 볼 수 있습니다.