hakeryk2 Posted February 21, 2019 Share Posted February 21, 2019 (edited) Nurtuje mnie takie pytanko jak macie ustawione parametry, limity, custom configi na waszych VPS pod Prestę i przy jakim sprzęcie? W szególności może MySQL ponieważ nigdy nie mogę sprawić by działała mega szybko i na localhoście localhost działa szybciej niż na produkcji. Ogólnie nie jest źle. Około 300-400 ms na TTFB z cache presty, mod_pagespeed i jpresta cache oraz opcache ale zawsze można by wyciągnąć więcej PHP 5.6 póki co ale niedługo przesiadka na 7.2 po zakończeniu testów na localhoście. U mnie jest 3x 2.4 Ghz, 4 Gb RAM, 80GB SSD ------------------------------------------------------------------- MYSQL max_connections = 200 sort_buffer_size = 2097152 join_buffer_size = 24M innodb_buffer_pool_size = 2G innodb_log_file_size = 512M table_open_cache = 5000 thread_cache_size = 24 innodb_page_cleaners = 8 innodb_flush_method = O_DIRECT # danger stability but provides more speed changed 2018-07-31, default 1, 0 is prob faster, check 2, HOLLY FUCK THIS 2 IS FAST! innodb_flush_log_at_trx_commit = 2 innodb_flush_log_at_timeout = 0 innodb_log_compressed_pages = 0 innodb_lru_scan_depth = 256 innodb_read_io_threads = 12 #changed 2018-07-31, default 4, was 8 innodb_write_io_threads = 12 innodb_io_capacity = 800 innodb_io_capacity_max = 4000 key_buffer_size = 128M innodb_thread_concurrency = 0 ------------------------------------------------------------------ i mam coś takiego w PHP-FPM: Zmieniłem z ondemand na statyczne ;pm = ondemand default changed in 2018-08-03 to static to see performance pm = static pm.max_children = 20 pm.start_servers = 9 pm.max_spare_servers = 16 pm.max_requests = 300 ; Custom values php_admin_value[max_execution_time] = 1800 php_admin_value[max_input_vars] = 20000 php_admin_value[max_input_time] = 55000 php_admin_value[memory_limit] = 320M php_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT php_flag[display_errors] = off php_admin_value[post_max_size] = 192M php_admin_value[upload_max_filesize] = 32M php_admin_flag[allow_url_fopen] = on php_admin_value[disable_functions] = exec,passthru,popen,proc_open,show_source,shell,shell_exec,symlink,system,mail ----------------------------------- Serwer bezproblemowo radzi sobie jeszcze z mod_pagespeed i CoreFilters, odczytanie strony to około 300 -500 ms i ruchem na poziomie średnio 10-20 osób online, jednak bez problemu działał nawet przy 150 osobach online. Edited February 22, 2019 by hakeryk2 (see edit history) 2 Link to comment Share on other sites More sharing options...
Piotr Kaczor Posted March 6, 2019 Share Posted March 6, 2019 (edited) Dnia 21.02.2019 o 10:45 AM, hakeryk2 napisał: U mnie jest 3x 2.4 Ghz, 4 Gb RAM, 80GB SSD Bida Panie Bida, my śmigamy na takich maszynkach: "IBM Power 8 S822LC system with 2x10 cores @2.92GHz running in SMT8 mode (160 threads), 256GB of RAM to have the full DB in memory" https://www.softizy.com/blog/prestashop-1-6-1-0-performances/ Znalazłem taki artykuł, zostawiam może się komuś przyda. Edited March 6, 2019 by Piotr Kaczor (see edit history) Link to comment Share on other sites More sharing options...
hakeryk2 Posted March 6, 2019 Author Share Posted March 6, 2019 Panie, nie sposób się nie chwalić taką potężną maszyną, ale sztuką jest z gówna ferrari wyciągnąć Jedno już wiem, że czynnikiem limitującym moją wydajność w mySQL jest I/O na dysku hostingu który nie wydala w tej kwestii i może kiedyś przerzucę się na hetznera lub linuxVps. W porównaniu do tego linku który wrzuciłeś to osiągam znacznie lepsze wyniki na większym sklepie (więcej produktów, kombinacji, reguł koszyka) i na słabszym sprzęcie Ponadto korzystanie z query_cache_size = 32M to jakieś nieporozumienie ponieważ po zapchaniu cache (a dzieje się to relatywnie szybko) każde odpytanie najpierw sprawdza czy jest w cache, jak nie, to zwalnia miejsce z cache i usuwa i tam wstawia znacznie spowalniając cały proces. Lepiej ogólnie zakomentować. Z takim moich uwag do tamtej konfiguracji lepiej byłoby korzystać zamiast: innodb_thread_concurrency = 32 na = 0 Ponadto jest tam podane: innodb_buffer_pool_size = 3G i później widzę, że jest innodb_log_file_size = 128M a wartość innodb_log_file_size powinna wynosić 1/4 z innodb_buffer_pool_size czyli powinno być 768M ------------------------------------- Sprawdzę wartości u siebie innodb_flush_neighbors = 0 bo mam 1 Link to comment Share on other sites More sharing options...
koening Posted March 6, 2019 Share Posted March 6, 2019 (edited) Może warto zobaczyć jak skonfigurowali serwer na dokerze goście od presty https://hub.docker.com/r/prestashop/prestashop/ Moze znajdziesz tam coś ciekawego co Cię zainteresuje jak odpalisz obraz na dockerze. Edited March 6, 2019 by koening (see edit history) Link to comment Share on other sites More sharing options...
Piotr Kaczor Posted March 6, 2019 Share Posted March 6, 2019 (edited) Patrzyłem na VPS OVH, można wybrać Debiana z zainstalowaną najnowszą Prestą na Apache z php 5.6 w konfigu tylko to jest "nie standardowe" poza execution_time i wielkościami plików disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority Edited March 6, 2019 by Piotr Kaczor (see edit history) Link to comment Share on other sites More sharing options...
turbo_rabbit Posted March 8, 2019 Share Posted March 8, 2019 ja skorzystałem z tych dwóch linków ale najwięcej dało opcashe z drugiego i po jego właczeniu sklep dostał kopa przestał rzeźbić procesorem i kilkukrotnie wzrosła predkość, w konfigu php opcashe był standardowo wyłaczony. w mysql za duzo nie grzebałem- chyba tylko limity pamięci bo ogólnie pracuje na EC2 AWS więc sie nei użeram z dedykami z hostingów. https://devdocs.prestashop.com/1.7/scale/optimizations/ https://lastplaceonthe.net/how-to-enable-php-7-opcache-on-ubuntu-16-04/ Link to comment Share on other sites More sharing options...
hakeryk2 Posted March 8, 2019 Author Share Posted March 8, 2019 (edited) @turbo_rabbit W sumie o tym nie wspomniałem ale opcache oczywiście załączony i skonfigurowany wg takiego configa - zwróćcie uwagę na memory_consumption i to ile macie dostępnego ramu by udostępnić opcache) [opcache] opcache.enable = 1 opcache.revalidate_freq=1800 opcache.validate_timestamps=0 opcache.max_accelerated_files=16000 opcache.memory_consumption=192 opcache.interned_strings_buffer=16 opcache.fast_shutdown=1 Proszę też pamiętać przynajmniej w 1.6 by dodać komendę opcache_reset(); w Module.php w funkcji _clearCache na samym początku funkcji. Wtedy mamy pewność, że gdy nastąpi revalidate to php dostanie świeże pliki a nie jakiś miszmasz. Edited March 10, 2019 by hakeryk2 (see edit history) Link to comment Share on other sites More sharing options...
Sellmark Posted March 13, 2019 Share Posted March 13, 2019 Świetny wątek, dziękuję autorowi za poruszenie tematu. Wielokrotnie błądziłem po sieci w poszukiwaniu optymalnego configa dla PS, ale wygląda na to, że nie istnieje jako taki sprofilowany stricte pod nasz kochany e-commercowy framework. W załączeniu mój zrzut variables z sqla - prawdopodobnie pełen absurdów. Jest to efekt moich poszukiwań i zlepek różnych koncepcji optymalizacji MySQL @hakeryk2 co o nim sądzisz? Maszyna to 4x Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz / 8 GB RAM / SSD 250GB - mam tutaj zahostowane 4 sklepy PS. z czego średnie obciążenie jak poniżej: mycnf.txt 1 Link to comment Share on other sites More sharing options...
hakeryk2 Posted March 13, 2019 Author Share Posted March 13, 2019 Szczerze statyczne dane z ptop średnio pomagają Warto podzielić się własnymi ustawieniami w my.cnf w etc/mysql lub porównać niektóre wartości z SHOW Variables; z konsoli mysql z tym co sam wrzuciłem u góry. Przydatnym narzędziem jest również mysqltuner który warto zainstalować, zostawić na tydzień i odpalić ponownie - otrzymasz wiele wskazówek które można poprawić, ale nie należy ich brać też za pewnik. Niektóre są absurdalnie przesadzone i tylko własne testy będą skutkować zwiększeniem wydajności. Polecam też zainstalować sobie narzędzie htop na VPS ponieważ w znacznie bardziej przejrzysty sposób prezentuje procesy Z własnego doświadczenia powiem też tyle, że nawet najlepsza optymalizacja mySQL nie pomoże jeśli będziemy mieli źle zoptymalizowane zapytania lub zapytania bez indeksów (te zapytania wyłapuje mysltuner) oraz gdy dyski na których są ulokowane bazy danych będą przeciążone i będzie kolejka dostępowa do odczytu i zapisu. EDIT: Dopiero zauważyłem, że dołączyłeś mycnf Tak więc porównaj swoje wartości do moich bo VPS są podobne, poczekaj na wyniki mysql tunera i zobacz co tam można jeszcze pozmieniać. Link to comment Share on other sites More sharing options...
Sellmark Posted March 13, 2019 Share Posted March 13, 2019 Czy MySQL tuner jakoś specjalnie dostosowywałeś, czy po prostu zwykła instalacja wprost z gita? Link to comment Share on other sites More sharing options...
hakeryk2 Posted March 13, 2019 Author Share Posted March 13, 2019 Zwykła instalka. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now