/sys/class/bdi/settings는 어떤 장치에 해당합니까?

/sys/class/bdi/settings는 어떤 장치에 해당합니까?

/sys/class/bdi장치에 대한 미리 읽기 및 더티 페이지 비율과 같은 설정 기능을 제공합니다. 이는 주:부 장치 번호 또는 st_dev파일 시스템 설정 값인 bdi 식별자로 구성됩니다. 내 /sys/class/bdi내용은 다음과 같습니다.

$ ls /sys/class/bdi/
0:184  0:342  0:345  0:374  0:39  0:40  0:404  0:405  0:42  253:0  253:1  7:0  7:1  8:0  8:16  8:32  default

0:내 질문은: 항목이 어떤 장치/파일 시스템에 해당하는지 어떻게 알 수 있습니까 ? 0이 아닌 주요 번호가 있는 항목은 eg 에 나열된 장치이지만 /proc/devices다른 항목의 용도는 무엇인지 알 수 없습니다.

답변1

가상 디렉터리에서 임의의 BDI 식별자를 검색해야 하는 경우 /sys/class/bdi다음과 같은 작업을 수행하는 것이 좋습니다.

$ sudo find /sys -type l -exec ls -la {} + | grep -E '(bdi|block)/8:32'
lrwxrwxrwx 1 root root 0 Aug 20 12:33 /sys/class/bdi/8:32 -> ../../devices/virtual/bdi/8:32
lrwxrwxrwx 1 root root 0 Aug 20 12:33 /sys/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc/bdi -> ../../../../../../../../virtual/bdi/8:32
lrwxrwxrwx 1 root root 0 Aug 20 12:33 /sys/devices/virtual/bdi/8:32/subsystem -> ../../../../class/bdi
lrwxrwxrwx 1 root root  0 Aug 20 12:33 /sys/dev/block/8:32 -> ../../devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc

식별자가 무엇인지 알고 싶다면 8:32BDI가 블록 장치에 해당한다는 것을 이미 알고 있다면 가상 디렉터리에서 링크를 읽으면 됩니다 /sys/dev/block. 예를 들어

$ readlink /sys/dev/block/8:32
../../devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc

이를 통해 해당 장치가 무엇인지에 대한 좋은 아이디어를 얻을 수 있습니다. 이 예에서는 sdc세 번째 ATA 커넥터에 연결된 장치 입니다 .

그러나 특정 장치에 대한 BDI 설정에 관심이 있는 경우 가상 디렉터리에서 가상 파일을 읽을 수 있습니다. 예를 들면 다음과 같습니다.

$ grep . /sys/block/sda/bdi/*
/sys/block/sda/bdi/max_ratio:40
/sys/block/sda/bdi/min_ratio:0
grep: /sys/block/sda/bdi/power: Is a directory
/sys/block/sda/bdi/read_ahead_kb:128
/sys/block/sda/bdi/stable_pages_required:0
grep: /sys/block/sda/bdi/subsystem: Is a directory

나는 이것이 대부분의 경우에도 적용된다고 생각합니다.

$ readlink /sys/dev/*/8:32
../../devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc

쉘 와일드카드 확장을 사용하여 올바른 장치 클래스를 자동으로 찾습니다.

관련 정보