Chociaż mogłem użyć Memcached na Debianie, aby użyć domyślnego portu 11211, ale miałem duże trudności z konfiguracją gniazda Unix.
Z tego, co przeczytałem, wiem, że muszę utworzyć memcache.socket
i dodać:
-s /path/to/memcache.socket
-a 0766
Do /etc/memcached.conf
i skomentować domyślny port połączenia i adres IP, tj
-p 11211
-l 127.0.0.1
Jednak po ponownym uruchomieniu memcached otrzymuję wewnętrzne błędy serwera w witrynie Drupal.
Próbuję zaimplementować gniazda unix, aby uniknąć narzutu TCP / IP i zwiększyć ogólną wydajność pamięci, ale nie jestem pewien, jakiego wzrostu wydajności można się spodziewać po tym ulepszeniu.
Doceniam twoje wskazówki lub możliwe konfiguracje, aby rozwiązać ten problem.
Odpowiedzi:
Może się okazać, że samo ustawienie ścieżki gniazda nie działa. Memcached upuszcza uprawnienia, zanim utworzy swoje gniazdo, chociaż po zapisaniu swojego PID. Zwykle umieszcza się gniazdo
/var/run
(np. Tak jak robi to mysql), ale tylko root może tam pisać, więc stwórz/var/run/memcached
i pokaż nikomu, a następnie ustaw/var/run/memcached/memcached.sock
jako ścieżkę gniazda. Napisanie go również/tmp
by działało, ale z samej swojej natury mogło zostać zniszczone; wbicie go/var/run
jest trochę bardziej trwałe.Możesz sprawdzić, czy działa, używając NetCata, aby się z nim połączyć:
nc -U /var/run/memcached/memcached.sock
Po prostu wpisz
stats
pusty wiersz; jeśli działa, otrzymasz ładunek wyjściowy.źródło
nobody
nie można zapisać do folderu należącego do katalogu głównego bez odpowiedniego uprawnienia.Wierzę, że gniazdo będzie musiało być wykonywalne na całym świecie, a nie zapisywalne. Jeśli widzisz komunikat z powiadomieniem PHP zawierający errno = 32 Uszkodzona rura , ustaw maskę dostępu Memcached na 0755
Sprawdź także, czy demon Drupala Memcached ma
0
w konfiguracji port TCP . Nieuzbrojony port domyślnie ustawi11211
i pomyli połączenie z gniazdem.źródło
dodano do / etc / default / memcached:
dodano do /etc/memcached.conf:
źródło
Porównywałem wzrost wydajności korzystania z gniazd unix memcached, o 33% szybsze jest używanie gniazd unix w moich testach z wykorzystaniem php cli.
Odkryłem, że ważne jest, aby dodać użytkownika memcache do grupy danych www i nadać uprawnienia dla gniazda Unix 775, w ten sposób zarówno program obsługi php, jak i użytkownik memcache mogą go wykonać.
Możesz znaleźć testy porównawcze i napisać tutaj - chociaż dotyczy WordPressa, powinien działać dla Drupala, ponieważ najprawdopodobniej jest to problem z uprawnieniami.
źródło
Uwaga: jeśli używasz kontenera alpejskiego w Kubernetes, specyfikacja kapsuły z sondami zdrowia wyglądałaby mniej więcej tak:
Zajęło trochę czasu, aby dowiedzieć się, jakie są właściwe ustawienia i jak połączyć się z gniazdem domeny lokalnej unix przez busybox.
źródło