O que o apc.mmap_file_mask realmente faz?

3

Eu quero usar o APC em um ambiente compartilhado, mas o principal problema é, claro, o compartilhamento opcode.

Para superar isso, eu pensei em usar diferentes apc.mmap_file_mask para cada usuário (eles são chrooted através de php-fpm), então o "arquivo" criado pela APC não seria compartilhado, mas seria pessoal para o usuário. br>
Claro, eu notei que estou errado por razões de servidor ... e o maior deles é sobre "O que realmente faz o apc.mmap_file_mask?": Eu pensei que era como um ponteiro para a região de memória usada pela APC , mas não tenho certeza disso.
E, é claro, não há nenhum arquivo no caminho que usei (/tmp/apc.XXXXXX): nenhum arquivo no / tmp da máquina e nenhum arquivo no ambiente do chrooted (/ home / vhosts / 0001 / tmp)

Então, o que realmente faz apc.mmap_file_mask?

Minha configuração atual é:

apc.mmap_file_mask = /tmp/apc.XXXXXX
apc.num_files_hint = 2048
apc.max_file_size = 10M
apc.ttl = 7200

Eu já verifiquei o que acontece com phpinfo (), e ele não traduz o valor: ele ainda me dá /tmp/apc.XXXXXX (mas apc.php diz que o cache foi atingido e eu tenho melhores valores de tempo ... assim está funcionando).

    
por Alessio Periloso 28.06.2012 / 19:27

2 respostas

3

Já experimentou APC.php no servidor web ativo? se você estiver usando o SHM e não o MMAP, isso poderia explicar isso. A máscara de arquivo simplesmente permite que ela salve o arquivo ap com dígitos aleatórios conforme sua especificação para um local específico. Você pode até enviá-lo para / dev / zero de acordo com um post no blog aqui link

Veja a explicação de vários locais de link

Eu não estou inteiramente certo da minha resposta, mas é plausível que você esteja usando o SHM e, portanto, o parâmetro para a máscara mmap pode não se aplicar.

tente isso também depois de codificar seu APC.php

ls /dev/shm
    
por 03.07.2012 / 19:17
2

Caso seja útil para qualquer pessoa, os arquivos são deletados quase que imediatamente, e é por isso que você não pode vê-los via ls (a menos que você execute ls na segunda direita). Se você deseja ver os arquivos sendo criados e excluídos pelo APC no diretório especificado por apc.mmap_file_mask, é possível usar inotify-tools para monitorar a atividade do sistema de arquivos nesse diretório.

Basta instalá-lo e mudar para o diretório apc.mmap_file_mask e executar o seguinte comando. Se outros processos usarem esse diretório para outras coisas (como no caso de / tmp), você poderá enviar a saída para grep e procurar parte do nome do arquivo que corresponda à sua configuração mmap_file_mask, como 'apc.'

/usr/bin/inotifywait -mr -e attrib,create,delete,modify,move --format '|%w/%f| %e %T' --timefmt '%Y-%m-%d-%H-%M-%S' .

#example output:

Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
|.//apc.wi3mjq| CREATE 2014-07-09-20-59-01
|.//apc.wi3mjq| MODIFY 2014-07-09-20-59-01
|.//apc.wi3mjq| DELETE 2014-07-09-20-59-01
|.//apc.EQs3Up| CREATE 2014-07-09-20-59-01
|.//apc.EQs3Up| MODIFY 2014-07-09-20-59-01
|.//apc.EQs3Up| DELETE 2014-07-09-20-59-01
|.//apc.IpNU5o| CREATE 2014-07-09-20-59-01
|.//apc.IpNU5o| MODIFY 2014-07-09-20-59-01
|.//apc.QnNU5o| CREATE 2014-07-09-20-59-01
|.//apc.QnNU5o| MODIFY 2014-07-09-20-59-01
|.//apc.QnNU5o| DELETE 2014-07-09-20-59-01

Como uma observação, este truque funciona também para ver a atividade de tabela temporária no tmpdir do MySQL.

    
por 10.07.2014 / 06:09