Поддержка Проблемы и решения Wp_load_alloptions() 530 вызовов

  • Всем привет! Помогите определить проблему. Есть сайт (вукомерц, елементор), 1500 зареганых клиентов. Утром начала падать БД, хостер говорит — на 1 процесс до 2 гб памяти потребляется. Через квери монитор заметил странность — https://i.imgur.com/ZgMwzzA.png

    что только не делал, искал по мануалу — https://kinsta.com/knowledgebase/wp-options-autoloaded-data/

    вырубил абсолютно все плагины, сменил тему — дублирующихся запросов стало 500, а с всеми плагинами активными и шаблоном — 1200 было.

    Как видно из скриншота вызов с WordPress Core. Обновил ВП, прочекал весь сайт wordfence_ом. Просмотрел глазами по файлам/папкам нет ли свеже-модифицированных файлов. — ничего.

    Куда еще копать? Или только новый сайт?

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Модератор Yui

    (@fierevere)

    永子

    в wp_options обычно сохраняются данные объектного кеша,
    если они по каким-то причинам не были очищены по истечению срока кеширования, то можно воспользоваться
    https://wordpress.org/plugins/delete-expired-transients/
    (или иным плагином с этой функцией)

    Также можно в принципе избежать хранения транзиентов в таблице MySQL
    установив объектный кеш, например на основе Redis
    https://ru.wordpress.org/plugins/redis-cache/
    (требует поддержки хостинга! наличия ПО Redis и расширения PHP)

    или вот такой вариант недавно нашла,
    https://ru.wordpress.org/plugins/docket-cache/
    Данные объектного кеша сохраняются в Zend Opcache,
    впрочем, на перегруженном и плохо сконфигурированном хостинге это может работать неэффективно, но зато обычно ничего дополнительного для установки не требуется.

    не-а, нету их — https://i.imgur.com/Cm2zYtS.png

    аа, и по объектному кешу — стоит мемкеш, работает:

    Объектный кэш
    Попадание 99,8% (хиты 1 651, пропущено 3)

    Persistent object cache plugin in use

    проверил на похожей конфигурации магазине, там дублирующийся запросов 2 и то не от вп_опшинс…

    Модератор Yui

    (@fierevere)

    永子

    не-а, нету их

    ну так если мемкешед стоит, то и нету )
    Тогда становится совсем непонятно, что именно пытается получить ваша установка WP из wp_options аж 500+ запросами, тем более там все должно быть уже усажено в memcached

    непонятно, что именно пытается получить ваша установка WP из wp_options

    вот и я о том же )

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Функция wp_load_alloptions() сначала получает список всех опций с флагом autoload = 'yes', а затем сохраняет его в объектном кеше — как минимум до следующей загрузки страницы, а если установлен Memcached или Redis, то и на более долгий срок, пока не будет добавлена, изменена или удалена одна из опций.

    Если при многократном вызове функции вместо чтения из кеша снова и снова выполняется SQL-запрос — предполагаю, что не срабатывает добавление в кеш: либо опций слишком много, либо некорректно настроен Memcached, либо что-то происходит с фильтром pre_cache_alloption и т.д.

    sergeybiryukov понял, спасибо.

    Как решилась проблема:

    заремил строки в впконфиге:

    //define( ‘WP_CACHE_KEY_SALT’, ‘sadsa23435аwewewewe2c23c3c’ );
    //$memcached_servers = array( ‘127.0.0.1:11211’ );

    wp-content/object-cache.php_

    и сразу все попустило…. кол-во запросов в квери монитор снизилось в 4 раза, дубли ушли, сайт просто летает (он на выделенном сервере)… Спрашиваю у хостеров — меняли какие-то настройки, апгрейдили что-либо? — нет, ничего не менялось и не могло меняться…

    на сайте тоже ничего не менялось, пару лет назад как все поставили так и стоит, месяца 5 назад может все плагины обновили…

    вот как квери монитор теперь показывает — https://i.imgur.com/mTe5HmV.png

    Модератор Yui

    (@fierevere)

    永子

    я бы не назвала отключение объектного кеша решением,
    хотя да, то, что при его отключении все стало лучше и проблема ушла,
    это подтверждает написанное Сергеем
    Разбираться тут надо с кешем… С memcached бывают странности, иногда.. в отличие от Redis

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Wp_load_alloptions() 530 вызовов» закрыта для новых ответов.