Установка расширения Memcached. Скорость доступа к веб-сайту WordPress низкая и требует решения по оптимизации LCP.
УстановитьРасширение Memcached руководить оптимизация LCP LCP в последние годыGoogleЗапущен индикатор оценки веб-сайта, два наиболее важных индикатора LCP (Largest Contentful Paint), один — LCP, а другой — CLS. Если LCP будет оптимизирован до 2 секунд, появится больше возможностей для отображения веб-сайта в поиске Google. . оптимизация LCP вWordPressЕсть много популярных тайников вплагин, вы можете установить егоплагин кэширования. Как бы вы ни оптимизировали кеш, в конечном итоге вам придется сократить первоначальныйсерверПеред оптимизацией LCP необходимо настроить время ответа.Сначала необходимо настроить кэш сервера.
Конкретная ссылка на LCP:Оптимизировать самую большую отрисовку с содержимым Самая большая отрисовка с содержимым
Иллюстрация причин, по которым URL-адреса не считаются хорошими URL-адресами.
Инструменты кэширования на стороне сервера
Кэширование (или кэширование контента) — это широко используемый метод хранения копии данных во временном хранилище (также называемом кешем), чтобы к данным можно было легко и быстро получить доступ по сравнению с извлечением данных из исходного хранилища. В зависимости от типа и назначения кэша данные, хранящиеся в кэше, могут включать файлы или фрагменты файлов (например, HTML-файлы, сценарии, изображения, документы и т. д.),база данныхОперации или записи, вызовы API, записи DNS и т. д.
ЛинуксСуществует множество отличных инструментов кэширования с открытым исходным кодом для инструментов кэширования сервера.Мемкеши Redis и т. д. Далее в основном рассказывается, как использовать Memcached.
Мемкеш
Memcached — это бесплатная, простая, но мощная система кэширования объектов в распределенной памяти с открытым исходным кодом. Это хранилище значений ключей в памяти, используемое для хранения небольших фрагментов данных, таких как результаты вызовов базы данных, вызовов API или рендеринга страниц. Он работает в Unix-подобных операционных системах, включая Linux и OS X, а также в Microsoft.Майкрософт Окназапускать на.
Что такое кэш памяти Memcached
Бесплатная высокопроизводительная распределенная система кэширования объектов в памяти с открытым исходным кодом, универсальная по своей природе, но предназначенная для снижения нагрузки на базу данных за счетускорятьсяДинамические веб-приложения.
Memcached — это хранилище значений ключей в памяти, используемое для хранения произвольных небольших фрагментов данных (строк, объектов) из вызовов базы данных, вызовов API или результатов рендеринга страниц.
Memcached — простой, но мощный инструмент. Его простая конструкция способствует быстрому развертыванию, простоте разработки и решает многие проблемы, возникающие при кэшировании больших данных. Его API доступен для большинства популярных языков.
Официальный сайт Memcached :http://memcached.org
Последняя стабильная версия: memcached-1.6.18.tar.gz (2023-1-10).
Установка Memcached
Дебиан/Убунту:apt-get install libevent-dev Redhat/Центос:dnf установить libevent-devel
Загрузите исходный код, скомпилируйте и установите
wget http://memcached.org/latest tar -zxvf memcached-1.6.18.tar.gz cd memcached-1.6.18 ./configure && make && make test && sudo make install
Необходимо запустить после завершения установки
# Проверьте, завершена ли установка кэша памяти ls -al /usr/local/bin/mem* # Запустите службу кэша памяти /usr/local/bin/memcached -d -m 200 -u www -p 11211 -c 256 -P / tmp/memcached.pid
Описание параметра Memcache:
- Опция -d запускает процесс демона,
- -m — объем памяти, выделенной для Memcache, единица измерения — МБ, здесь — 10 МБ.
- -u — пользователь, использующий Memcache, вот root
- -l — IP-адрес прослушивающего сервера.Если адресов несколько, я указал IP-адрес сервера 202.207.177.177.
- -p — установить порт, который прослушивает Memcache. Я установил здесь 11211, желательно порт выше 1024.
- Параметр -c определяет максимальное количество одновременных подключений, которые могут быть запущены. Значение по умолчанию — 1024. Здесь я установил его на 256. Установите его в соответствии с нагрузкой вашего сервера.
- -P — установить pid-файл для сохранения Memcache. Здесь я сохраняю его в /tmp/memcached.pid.
Установить через репозиторий программного обеспечения
dnf установить libevent-devel memcached
После установки настройте автозагрузку
# запустить systemctl start memcached # установить загрузку systemctl включить memcached # проверить текущий статус systemctl status memcached
Memcached изменил размер кэша
После установки измените размер кеша memcached (по умолчанию — 64 МБ) и измените размер кеша на 1024 МБ.
Открыть /etc/sysconfig/memcached файл, измените CACHESIZE на:1024
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="1024" OPTIONS="-l 127.0.0.1,::1,controller"
После завершения модификации,systemctl перезапустите memcached
Перезапустить службу
ps -ef | grep memcached
Проверьте, вступила ли конфигурация в силу
Если после установки Memcached вы хотите, чтобы Memcached правильно работал на веб-сайте, вам также необходимо установить его на PHP.Установите расширение Memcached.
Установите расширение Memcached
Примечание. Перед установкой Memcached необходимо понимать, что существует два типа расширений PHP: расширение Memcache и расширение Memcached.Расширение Memcached представляет собой обновленную версию расширения Memcache и поддерживает больше функций. Производительность лучше. Будьте осторожны, чтобы не установить его неправильно.
- memcache — это версия библиотеки расширений pecl, поддерживает собственный PHP и принадлежит к кешу первого поколения;
- memcached — это версия libmemcached. Она появляется позже и представляет собой кеш нового поколения, поэтому является более полной. Рекомендуется использовать memcached.
Путь установки и расположение конфигурации PHP8.0, установленного методом DNF, следующие:
- Путь установки пакета PHP RPM: /usr/bin/php-config.
- Файл конфигурации PHP:/etc/php.ini
Ниже приведен метод установки расширения Memcache и расширения Memcached.Если нет требований к установке расширения Memcache, вы можете сразу перейти к методу установки расширения Memcached.
Установка исходного кодаКэш памятиРасширять
Установите необходимые зависимости для расширения Memcache.
dnf установить zlib zlib-devel
Шаг первый: открытьhttps://pecl.php.net/package/memcacheЗагрузите установочный пакет расширения Memcache для php8.
Примечание. В разных версиях PHP имеются разные установочные пакеты расширения Memcache. Найдите соответствующую версию для установки.
Пакет установки расширения Memcache для php8: https://pecl.php.net/get/memcache-8.0.tgz
Шаг 2. Войдите на сервер, загрузите и распакуйте установочный пакет расширения Memcache.
wget https://pecl.php.net/get/memcache-8.0.tgz tar -xvf memcache-8.0.tgz cd memcache-8.0
Шаг 3. Установите расширение Memcache.
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
После успешной установки отобразитсяМесто установки Установка общих расширений: /usr/lib64/php/modules/
Шаг 4. Измените файл php.ini, включите расширение Memcache и добавьте следующий контент в конец файла php.ini.
расширение = кэш памяти
Проверьте правильность конфигурации PHP, а затем перезапустите службу PHP.
php-fpm -t systemctl перезапустить php-fpm
Проверьте файл зонда php, и расширение запустится нормально.
Установка исходного кодаМемкешРасширять
Шаг первый: открытьhttps://pecl.php.net/package/memcachedСкачать php8Расширение MemcachedУстановочный пакет.
Примечание. Версии PHP разные,Расширение MemcachedУстановочные пакеты также различаются, поэтому найдите соответствующую версию для установки.
Пакет установки расширения Memcached для php8:memcached-3.2.0.tgz
Шаг 2. Войдите на сервер, загрузите и распакуйте установочный пакет расширения Memcached.
wget https://pecl.php.net/get/memcached-3.2.0.tgz tar -xvf memcached-3.2.0.tgz cd memcached-3.2.0
memcached, для этого расширения требуется клиентская библиотека libmemcached, в противном случае произойдет следующая ошибка:
ошибка: для поддержки memcached требуется libmemcached. Используйте --with-libmemcached-dir= указать префикс, в котором расположены заголовки и библиотека libmemcached
dnf установить libmemcached libmemcached-devel remi-libmemcached-awesome
Примечание. Если в репозитории программного обеспечения отсутствует libmemcached-devel, вы можете загрузить и установить его.
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/libmemcached-devel-1.0.18-15.el8.x86_64.rpm dnf --enablerepo=powertools install libmemcached-devel
Шаг 3. Установите расширение Memcached.
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
После успешной установки будет отображено место установки. Установка общих расширений: /usr/lib64/php/modules/
Шаг 4. Измените файл php.ini, включите расширение Memcached и добавьте следующий контент в конец файла php.ini.
расширение = memcached
Проверьте правильность конфигурации PHP, а затем перезапустите службу PHP.
php-fpm -t systemctl перезапустить php-fpm
Просмотрите файл зонда PHP,Расширение MemcachedНормальный старт
Вы можете использовать команду pecl для установки расширения memcached без загрузки исходного кода.
pecl установить memcached
Очки знаний:Если вы не можете использовать dnf для установки расширения PHP в репозиторий программного обеспечения, вы можете использовать команду pecl, чтобы установить его в официальную библиотеку расширений PHP.
После установки расширения Memcached вам все равно необходимо подключить WordPress к Memcached.Если между серверной стороной и веб-стороной нет связи, кэш Memcached работать не будет.
WordPress Настройка кэша Memcached
Добавьте следующий контент в wp-config.php.
global $memcached_servers;$memcached_servers = array( array( '127.0.0.1', // IP-адрес сервера Memcached 11211 // Порт сервера Memcached) );
Если настроено многосайтовое кэширование, см. следующее:
глобальные $memcached_servers;$memcached_servers = массив(массив('1.2.3.4', 11211), массив('1.2.3.5', 11211));
Memcached прослушивает IP и порт. Проверить это можно с помощью следующей команды:
netstat -nutlp | grep memcache
Настройка memcached с помощью плагина кеширования в WordPress
В настоящее время W3TC может настраивать кэш памяти memcached в интерфейсе плагина. Нет необходимости в сложной настройке, изменении кода и т. д. W3TC является мощным инструментом и имеет множество вариантов конфигурации кэша, которые можно сопоставить.WP МетеорИспользование плагина.
Как проверить, правильно ли работает Memcached
Нажмите, чтобы загрузить файл мониторинга memcache.php
После загрузки файла memcache.php загрузите его в каталог WordPress на сервере. Перед загрузкой измените пароль пользователя доступа в файле.
$VERSION='$Id$'; define('ADMIN_USERNAME','Установить имя пользователя'); // Имя пользователя администратора define('ADMIN_PASSWORD','Установить пароль'); // Пароль администратора define('DATE_FORMAT','Y/ m /d H:i:s'); define('GRAPH_SIZE',200); define('MAX_ITEM_DUMP',50); $MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // добавляем еще в виде массива // $MEMCACHE_SERVERS [] = 'mymemcache-server2:11211'; // Если это многосайтовый кеш памяти, установите здесь
После загрузки посетите URL-адрес файла memcache.php, чтобы увидеть рабочую страницу кэша памяти.
Конфигурация Zend OPcache
использовать Опкеш Выполните ускорение и оптимизацию компиляции PHP-кода. Чтобы повысить эффективность выполнения кода, мы можем использовать OPcache, чтобы повысить эффективность выполнения PHP-кода и уменьшить накладные расходы на загрузку и анализ PHP-скриптов каждый раз. OPcache включен по умолчанию в php8.
PHP настраивает jit. В PHP 8 в ядро PHP добавлен JIT-компилятор, который может значительно повысить производительность. Благодаря более интенсивной обработке ЦП, возможно, PHP также сможет выполнять сложный анализ протоколов в будущем.
Во-первых, JIT работает только в том случае, если включен opcache, который используется по умолчанию в большинстве установок PHP, но вам следует убедиться, что в вашем файле php.ini для параметра opcache.enable установлено значение 1. Установите JIT через opcache.jit_buffer_size.
Просто настройте php.ini и добавьте в конец php.ini:
opcache.enable=1 opcache.jit_buffer_size=100M opcache.jit=1255 opcache.revalidate_freq=0 opcache.validate_timestamps=0 opcache.max_accelerated_files=7963 opcache.memory_consumption=192 opcache.interned_strings_buffer=16 opcache.fast_shutdown=1
opcache.revalidate_freq
Эта опция используется для установки времени истечения срока действия кэша (единица измерения — секунды). Когда это время будет достигнуто, opcache проверит, изменился ли ваш код. Если он изменился, PHP перекомпилирует его, сгенерирует новый код операции и обновит кеш. Значение «0» означает, что каждый запрос будет проверять, обновлен ли ваш PHP-код (это означает, что будет добавлено множество системных вызовов stat. Аннотация: Системный вызов stat предназначен для чтения статуса файла. Основная цель здесь — чтобы получить последнее время модификации. Эти системные вызовы вызовут дисковый ввод-вывод, поэтому они неизбежно будут потреблять некоторое время процессора. Конечно, сам системный вызов также будет потреблять некоторое время процессора). Вы можете установить для него значение 0 в среде разработки и оставить его в покое в производственной среде, поскольку ниже будет представлен еще один вариант настройки.
opcache.validate_timestamps
Если эта опция включена (установлена в значение 1), PHP будет проверять метку времени файла после достижения времени, установленного opcache.revalidate_freq.
Если эта опция отключена (установлена в 0), opcache.revalidate_freq игнорируется и файлы PHP никогда не проверяются. Это означает, что если вы измените свой код, затем обновите его на сервере, а затем запросите функцию, соответствующую обновленному коду, в браузере, вы не увидите эффекта обновления, и вам придется перезагрузить свой PHP ( Используйте команду kill -SIGUSR2 для принудительной перезагрузки).
Эта настройка немного болезненна, но я настоятельно рекомендую вам использовать ее в производственной среде, почему? Потому что при обновлении кода сервера, если кода много, операция обновления будет отложена. Во время этого процесса задержки Там неизбежно будет смесь старого и нового кода, и в настоящее время будет существовать неопределенность в обработке запросов пользователей.
opcache.max_accelerated_files
Этот параметр используется для управления максимальным количеством файлов PHP, которые могут быть кэшированы в памяти. Этот параметр должен быть установлен достаточно большим, чтобы он превышал сумму всех файлов PHP в вашем проекте. Моя база кода содержит около 6000 файлов PHP, поэтому я установил для этого значения простое число 7963 (Аннотация: я не знаю, почему этот парень установил это число, 7963 не является наименьшим простым числом, большим 6000), вы можете запустить " find.-type f-print | grep php | wc -l” Эта команда быстро подсчитывает количество PHP-файлов в вашей базе кода.
opcache.memory_consumption
Значение по умолчанию для этой опции — 64 МБ, я установил его на 192 МБ, потому что мой код большой. Вы можете получить общий объем памяти, используемый opcache, вызвав opcachegetstatus(). Если это значение велико, вы можете установить этот параметр больше.
opcache.interned_strings_buffer
Это полезная опция, но она кажется совершенно недокументированной. PHP использует технологию, называемую интернированием строк, для повышения производительности. Например, если вы используете строку «foobar» в своем коде 1000 раз, PHP выделит неизменяемую область памяти для хранения строки только при первом ее использовании, а остальные 999 раз она будет использоваться. область памяти. Эта опция выведет эту функцию на новый уровень.
По умолчанию эта неизменяемая область памяти будет существовать только в одном процессе php-fpm.Если эта опция установлена, она будет использоваться всеми процессами php-fpm. В более крупных приложениях это может быть очень эффективно для экономии памяти и повышения производительности приложений.
Значение этого параметра указано в мегабайтах. Если установлено значение 16, это означает 16 МБ. Значение по умолчанию — 4 МБ, что является относительно низким значением.
opcache.fast_shutdown
Еще один полезный, но недокументированный вариант. Буквально означает «обеспечение более быстрого завершения работы». Его роль заключается в обеспечении более быстрого механизма вызова деструктора в коде в конце одного запроса, тем самым ускоряя скорость ответа PHP и скорость переработки ресурсов процесса PHP, чтобы приложение могло быстрее ответить на следующий запрос. . Установите значение 1, чтобы использовать этот механизм.