Embora eu pudesse usar o memcached no Debian para usar a porta 11211 padrão, mas tive muita dificuldade em configurar o soquete Unix.
Pelo que li, sei que preciso criar um memcache.socket
e adicionar:
-s /path/to/memcache.socket
-a 0766
Para /etc/memcached.conf
comentar e comentar a porta de conexão e o IP padrão, ou seja,
-p 11211
-l 127.0.0.1
No entanto, quando reinicio o memcached, recebo erros internos do servidor no site Drupal.
Estou tentando implementar soquetes unix para evitar sobrecarga de TCP / IP e aumentar o desempenho geral do cache de memórias, mas não tenho certeza de quanto ganho de desempenho se pode esperar desse ajuste.
Agradeço suas dicas ou, possivelmente, configurações para resolver isso.
Respostas:
Você pode achar que apenas definir o caminho do soquete não funciona. O Memcached remove privilégios antes de criar seu soquete, embora depois de escrever seu PID. É comum colocar o soquete
/var/run
(por exemplo, como o mysql faz), mas somente o root pode escrever nele, então crie/var/run/memcached
e mostre a ninguém, e então defina/var/run/memcached/memcached.sock
como o caminho do soquete. Escrever para/tmp
isso também funcionaria, mas por sua própria natureza, isso poderia ser destruído; colocá-lo/var/run
é um pouco mais permanente.Você pode verificar se está funcionando usando o netcat para se conectar a ele:
nc -U /var/run/memcached/memcached.sock
Basta digitar
stats
no prompt em branco; se estiver funcionando, você terá uma carga de saída.fonte
nobody
não é possível gravar em uma pasta pertencente à raiz sem a permissão apropriada.Acredito que o soquete precisará ser executável mundialmente, não gravável. Se você estiver vendo uma mensagem de aviso do PHP contendo errno = 32 pipe quebrado , ajuste a máscara de acesso do Memcached para 0755
Verifique também se o daemon Memcached do Drupal possui uma porta TCP
0
na configuração. Uma porta não configurada será padrão11211
e confundirá a conexão do soquete.fonte
adicionado a / etc / default / memcached:
adicionado ao /etc/memcached.conf:
fonte
Comparei o aumento de desempenho do uso de soquetes unix memcached, é 33% mais rápido usar soquetes unix nos meus testes usando o php cli.
Eu descobri que é importante adicionar o usuário do memcache ao grupo www-data e dar permissões ao soquete 775 do unix, dessa forma, tanto o manipulador do php quanto o usuário do memcache podem executá-lo.
Você pode encontrar as referências e os artigos aqui - embora seja para o WordPress, ele funcione para o Drupal, pois é muito provável que seja um problema de permissão.
fonte
Observe que se você estiver usando um contêiner alpino no Kubernetes, a especificação do pod com testes de integridade seria algo como isto:
Demorou um pouco para descobrir as configurações corretas e como conectar-se a um soquete de domínio local unix via busybox.
fonte