Você pode acelerar a largura de banda para um ramdisk baseado em tmpfs?

8

Criei um ramdisk usando tmpfs da seguinte maneira:

sudo mount -t tmpfs -o size=1024m tmpfs /myramdisk

Eu estava examinando os limites de largura de banda do subsistema cgroup blkio "read_bps_device" e "write_bps_device", mas eles parecem exigir o número maior e menor do seu dispositivo de bloco ao qual você deseja otimizar o acesso.

Existe alguma maneira de atingir um limite de largura de banda semelhante ao ramdisk tmpfs na memória?

ATUALIZAÇÃO : Encontrei uma maneira indireta de fazer isso. Primeiro nfs exportar o monte ramdisk. Em seguida, os nfs o montam sobre loopback na mesma máquina. Em seguida, uso o tráfego de rede Linux para definir os limites de largura de banda. Isso parece fornecer o que eu preciso. Estou no processo de realizar algumas medições para ver a penalidade que essa horrenda camada implica. Atualizarei informações sobre isso em alguns dias.

weirdbluelights
fonte
Você pode escrever o que fez como resposta para que eu possa conceder a recompensa? Recompensa é uma espécie de "use ou perca", uma vez que é oferecido.
Bratchley

Respostas:

1

statou /proc/[PID]/mountinfoainda deve informar quais são os números do dispositivo:

[root@XXXlin01 block]# stat --printf="%d" /tmp/mnt; echo
24
[root@XXXlin01 block]# stat --printf="%d" /tmp/mnt2; echo
25
[root@XXXlin01 block]# grep "/tmp/mnt" /proc/22195/mountinfo
40 20 0:24 / /tmp/mnt rw,relatime - tmpfs none rw
41 20 0:25 / /tmp/mnt2 rw,relatime - tmpfs none rw

Ambas as saídas são exibidas 0:25e 0:24como os números do dispositivo em questão. O número do dispositivo "0" é usado para montagens "sem nome" (como tmpfs, sysfs, nfs, procfs, etc.). Por exemplo, aqui está uma montagem NFS:

[root@XXXlin01 block]# grep "/LinuxHome" /proc/22195/mountinfo
39 36 0:23 / /home/jad87 rw,relatime - nfs duhsnas-xxx:/ifs/Application\040File\040Shares/DUHS/LinuxHomeDir_fs/jad87 rw,vers=3,rsize=4096,wsize=4096,namlen=255,soft,proto=tcp,timeo=14,retrans=2,sec=sys,mountaddr=10.1x.92.106,mountvers=3,mountport=300,mountproto=udp,local_lock=none,addr=10.1x.92.106
42 36 0:26 / /home/tsa20 rw,relatime - nfs 10.1x.92.117:/ifs/Application\040File\040Shares/DUHS/LinuxHomeDir_fs/tsa20 rw,vers=3,rsize=4096,wsize=4096,namlen=255,soft,proto=tcp,timeo=14,retrans=2,sec=sys,mountaddr=10.1x.92.117,mountvers=3,mountport=300,mountproto=udp,local_lock=none,addr=10.1x.92.117

As montagens NFS acima são 0:23e 0:26respectivamente.

Bratchley
fonte
Obrigado pela informação sobre o número maior / menor do ramdisk. Mas o subsistema cgroups blkio parece não permitir a otimização de dispositivos sem nome. echo "0:32 1048576" > /sys/fs/cgroup/blkio/blkio.throttle.write_bps_deviceme deu um "erro de gravação: argumento inválido". Pode haver uma outra maneira que alguém conhece.
Weirdbluelights
Desculpe, não sabia disso. Por curiosidade, qual é o objetivo na configuração da largura de banda dos tmpfs? Só para dar espaço para outro trabalho no FSB ou algo assim?
Bratchley
Isto é para um estudo de simulação para um projeto de curso. O objetivo é plotar o desempenho de um aplicativo em uma grande variedade de diferentes larguras de banda de gravação / leitura.
weirdbluelights