Readahead para / var / lib / mongo está definido como 4096KB

4

Estou tentando definir o readahead para o mongo 256 ou menos, conforme recomendado, consultei o documentação para qualquer orientação e eu encontrei isto:

Ensure that readahead settings for the block devices that store the database files are appropriate. For random access use patterns, set low readahead values. A readahead of 32 (16kb) often works well. For a standard block device, you can run sudo blockdev --report to get the readahead settings and sudo blockdev --setra <value> <device> to change the readahead settings. Refer to your specific operating system manual for more information.

quando faço um sudo blockdev --report , obtenho:

rw  8192   512  4096          0     32212254720   /dev/sda
rw  8192   512  4096       2048     31162630144   /dev/sda1
rw  8192   512  4096   60866560      1048576000   /dev/sda2
rw  8192   512  4096          0     75161927680   /dev/sdb
rw  8192   512  4096       2048     75159830528   /dev/sdb1

como eu sei qual é o que está relacionado ao mongo?

    
por jack.the.ripper 09.12.2014 / 02:13

2 respostas

7

É provavelmente /dev/sdb dados os tamanhos listados, mas você pode descobrir executando df -h . Eu mantenho meus dados em /data e aqui está minha saída relevante:

> df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        70G   18G   49G  27% /
/dev/sdc1        932G  682G  250G  74% /data

No meu caso, isso significa que o que eu deveria estar alterando para readahead é /dev/sdc1 . Descobrir onde você guarda seus dados e, em seguida, qual dispositivo de bloco que corresponde a, defina a readahead nesse dispositivo. No meu caso:

sudo blockdev --setra 256 /dev/sdc

Para persistir durante as reinicializações, você precisará adicionar esse comando ou semelhante a um script de inicialização, como rc.local, ou talvez colocá-lo em seu script init MongoDB para garantir que ele esteja definido antes do processo do MongoDB ser iniciado (readahead é somente ler uma vez pelo processo na inicialização, portanto, requer uma reinicialização do processo para afetar uma alteração).

    
por 10.12.2014 / 02:50
1

Eu escrevi um script de inicialização para definir / desativar isso para mim:

script inicialque

    
por 04.03.2015 / 02:03