Mam Drupal 7, apc z php-fpm i apache za lakierem i 512 MB pamięci RAM.
Czas wykonania strony mierzę za pomocą modułu devel.
Czas zapytania do bazy danych jest niski (62 ms) w porównaniu do czasu wykonania strony, który wynosi 854 ms. Oznacza to, że występuje problem z ustawieniami PHP i APC.
Moje obecne ustawienia są po prostu
apc.shm_size = 64
apc.stat=1
Jak mogę poprawić?
Jakie są najlepsze ustawienia dla Drupala, biorąc pod uwagę powyższą konfigurację?
Dzięki
źródło
To jedno z tych „jak długi jest ciąg pytań”.
To, co jest dobre dla witryny o dużym wolumenie, może nie być takie samo dla witryny o niskim wolumenie z dużą liczbą modułów i może nie być takie samo dla witryny o dużej objętości z włączoną tylko kilkoma modułami. Inne witryny działające na serwerze mogą również jeść w pamięci dostępnej przez APC.
Mój punkt wyjścia to
Następnie dostosowuję ustawienia serwera, ale znowu, nie ma jednego rozmiaru pasującego do wszystkich ustawień.
Znajdź apc.php (prawdopodobnie znajduje się w /usr/share/pear/apc.php) i zainstaluj go w DOCROOT dla twojej instalacji Drupal. Zablokuj go do swojego adresu IP za pomocą konfiguracji Apache. Edytuj nazwę użytkownika / hasło w środku, a następnie przejdź do niego. Zobaczysz wtedy swoje statystyki APC.
Ponownie skonfiguruj parametr shm_size, aby zminimalizować błędy w pamięci podręcznej. Idealnie byłoby, gdybyś miał wystarczająco dużo pamięci, aby nigdy nie brakowało pamięci podręcznej dla pliku, a także dodatkową pamięć dla pamięci podręcznej użytkownika APC.
Zoptymalizuj TTL, aby zapobiec rezygnacji z pamięci podręcznej. Jeśli nie edytujesz plików, możesz podnieść ten numer.
enable_cli jest przydatne, gdy często używasz drush, dzięki czemu drush używa buforowanych plików z APC.
rfc1867 jest przydatny do przesyłania plików.
W tytule zauważyłem również php-fpm. To komplikuje sprawy i naprawdę wykracza poza zakres Drupal Answers. Możesz uzyskać lepsze odpowiedzi w przypadku awarii serwera , ponieważ wiele ustawień konfiguracji systemu nie dotyczy bezpośrednio Drupala.
źródło
APC po prostu usprawnia ładowanie i parsowanie plików PHP. Dużą część stanowi także sam czas wykonania. Istnieje wiele czynników, które mogą wydłużyć czas wykonywania, w tym błędy (szczególnie błędy związane z pamięcią podręczną), narzut wewnętrzny (np. Drupal_alter (), module_implements ()) i tak dalej.
Tak jak prosiłeś i został już zasugerowany przez mikeytown2, użyłbym xhprof (obecnie wolę go od xdebug, ponieważ zapewnia bezpośredni, szybki dostęp do wyniku i nie wymaga żadnych dodatkowych narzędzi), aby dowiedzieć się, gdzie są twoje wąskie gardła.
Niedawno napisałem dwa posty na blogu o korzystaniu z xhprof w Drupal i typowych wąskich gardłach , które mogą cię zainteresować.
źródło