Как очистить кэш apc

Обновлено: 07.07.2024

Мне нужно очистить все записи кэша APC при развертывании новой версии сайта. APC.php имеет кнопку для очистки всех кеш-кодов операций, но я не вижу кнопок для очистки всех пользовательских записей или всех записей системы или всех записей в каждом каталоге.

Можно ли очистить все записи кэша через командную строку или каким-либо другим способом?

Вы можете использовать функцию PHP apc_clear_cache .

Вызов apc_clear_cache() очистит системный кеш, а вызов apc_clear_cache('user') очистит пользовательский кеш.

Мое решение для очистки из командной строки состояло в том, чтобы написать script, который копирует очистку APC script в каталог web и обращается к ней, а затем удаляет ее. script ограничен доступом к локальному хосту.

apc_clear.php

Это файл, в котором script копирует в веб-каталог, получает доступ и удаляет.

Очистка кэша script

Этот script копирует apc_clear.php в веб-каталог, обращается к нему, а затем удаляет его. Это связано с задачей Symfony. В версии Symfony вызывается обращение к форме Symfony и отмена связи, которые обрабатывают ошибки. Возможно, вам захочется добавить проверки, которые им удастся.

Я знаю это не для всех, но: почему бы не сделать изящный перезапуск Apache?

Например, в случае Centos/RedHat Linux:

Это не указано в документации, но очистить кеш-код операции, который вы должны выполнить:

EDIT: похоже, это относится только к некоторым более старым версиям APC.

Независимо от того, какую версию вы используете, вы не можете очистить кэш APC-кода mod_php или fastcgi от php cli script, так как cli script будет запускаться из другого процесса как mod_php или fastcgi. Вы должны вызвать apc_clear_cache() из процесса (или дочернего процесса), для которого вы хотите очистить кеш. Одним из таких подходов является использование curl для запуска простого PHP скрипт.

Если вы хотите очистить кэш apc в команде: (используйте sudo, если вам это нужно)

Если вы работаете в стеке NGINX/PHP-FPM, лучшим вариантом является, вероятно, просто перезагрузка php-fpm

service php-fpm reload (или любая ваша команда перезагрузки может быть в вашей системе)

Как определено в документе APC:

Чтобы очистить кеш-прогон:

Другая возможность использования командной строки, еще не упомянутая, - использовать curl.

Это не решит вашу проблему для всех записей кэша, если вы используете запас apc.php script, но он может вызвать адаптированный script или другой, который вы установили на место.

Это очищает кеш-код операции:

Измените параметр OB на 3, чтобы очистить кеш пользователя:

Поместите обе строки в script и вызовите его с помощью $PASSWORD в вашем env.

Если вы хотите отслеживать результаты через json, вы можете использовать этот вид script:

apc_clear_cache() работает только в одном и том же php SAPI, который вы хотите очистить. Если у вас есть PHP-FPM и вы хотите очистить кэш apc, вы делаете это через один из php-скриптов, а не в командной строке, потому что два кэша разделены.

Я написал CacheTool, инструмент командной строки, который решает именно эту проблему, и с помощью одной команды вы можете очистить свой PHP-FPM APC кеш из командной строки (он подключается к php-fpm для вас и выполняет функции apc)

Он также работает для opcache.

Устойчивость APC имеет возможность очистить кеш в самом интерфейсе. Чтобы очистить эти записи, вы должны войти в интерфейс apc.

У APC есть возможность установить имя пользователя и пароль в файле apc.php.

enter image description here

если вы запустите fpm под ubuntu, вам нужно запустить код ниже (отмечено 12 и 14)

apc.stat = "1" заставит APC статировать (проверить) script по каждому запросу, чтобы определить, было ли оно изменено. Если он был изменен, он будет перекомпилировать и кэшировать новую версию.

Если этот параметр отключен, APC не будет проверять, что обычно означает, что для принудительной проверки APC необходимо перезапустить веб-сервер или очистить кеш вручную. Обратите внимание, что конфигурации веб-сервера FastCGI могут не очищать кеш при перезагрузке. На производственном сервере, где файлы script редко меняются, значительное повышение производительности может быть достигнуто с помощью отключенных статистических данных.

В новом интерфейсе APC Admin есть опции для добавления/очистки кеша пользователя и кэша операций, одна интересная функция заключается в добавлении/обновлении/удалении каталога из кэша opCode

enter image description here

Создайте файл APC.php

Запустите его из своего браузера.

Хорошим решением для меня было просто не использовать устаревший пользовательский кеш после развертывания.

Если вы добавляете префикс для каждого из ваших ключей, вы можете изменить префикс на изменение структуры данных записей кэша. Это поможет вам выполнить следующее поведение при развертывании:

  • Не используйте устаревшие записи кэша после развертывания только обновленных структур.
  • Не очищайте весь кеш при развертывании, чтобы не замедлить свою страницу.
  • Некоторые старые кэшированные записи могут быть повторно использованы после восстановления вашего развертывания (если записи не были автоматически удалены уже)
  • APC удалит старые записи кэша после истечения срока действия ИЛИ при нехватке кеша

Это возможно только для кеша пользователя.

Моя работа для сборки Symfony с использованием экземпляров на одном сервере:

Шаг 1. Создайте триггер или что-то, чтобы установить флаг файла (например, команду Symfony), затем создайте marker file ..

Шаг 2. В индексном файле при запуске добавьте код очистки и удалите marker file .

Мне нужно очистить все записи кеша APC при развертывании новой версии сайта. В APC.php есть кнопка для очистки всех кешей кодов операций, но я не вижу кнопок для очистки всех пользовательских записей, или всех системных записей, или всех записей для отдельных каталогов.

Можно ли очистить все записи кеша через командную строку или каким-либо другим способом?

Вы можете использовать функцию PHP apc_clear_cache .

Вызов apc_clear_cache() очищает системный кеш, а вызов apc_clear_cache('user') очищает кеш пользователя.

Я знаю, что это не для всех, но: почему бы не выполнить изящный перезапуск Apache?

Например, в случае Centos / RedHat Linux:

В документации это не указано, но для очистки кеша опкодов необходимо:

РЕДАКТИРОВАТЬ: похоже, это применимо только к некоторым более старым версиям APC ..

Независимо от того, какую версию вы используете, вы не можете очистить кеш APC mod_php или fastcgi из сценария php cli, поскольку сценарий cli будет запускаться из другого процесса, как mod_php или fastcgi. Вы должны вызвать apc_clear_cache () из процесса (или дочернего процесса), для которого вы хотите очистить кеш. Одним из таких подходов является использование curl для запуска простого скрипта php.

Если вы хотите очистить кеш apc с помощью команды: (используйте sudo, если вам это нужно)

Если вы работаете в стеке NGINX / PHP-FPM, лучше всего просто перезагрузить php-fpm.

service php-fpm reload (или любая другая команда перезагрузки, которая может быть в вашей системе)

Как определено в документе APC:

Чтобы очистить кеш, запустите:

Другая возможность использования командной строки, еще не упомянутая, - это использование curl.

Это не решает вашу проблему для всех записей кеша, если вы используете стандартный сценарий apc.php, но это может вызвать адаптированный сценарий или другой сценарий, который вы добавили.

Это очищает кеш кода операции:

Измените параметр OB на 3, чтобы очистить кеш пользователя:

Поместите обе строки в сценарий и вызовите его с помощью $ PASSWORD в вашем env.

Если вы хотите отслеживать результаты через json, вы можете использовать такой сценарий:

Apc_clear_cache () работает только с тем же php SAPI, который вы хотите очистить кеш-памятью. Если у вас есть PHP-FPM и вы хотите очистить кеш apc, вы должны сделать это с помощью одного из сценариев php, а НЕ командной строки, потому что два кеша разделены.

Я написал CacheTool, инструмент командной строки, который решает именно эту проблему, и с помощью одной команды вы можете очистить Кеш PHP-FPM APC из командной строки (он подключается к php-fpm для вас и выполняет функции apc)

Это также работает для opcache.

В конюшне APC есть возможность очистить кеш в самом интерфейсе. Чтобы удалить эти записи, вы должны войти в интерфейс apc.

APC имеет возможность установить имя пользователя и пароль в файле apc.php.

enter image description here

Если вы запускаете fpm под ubuntu, необходимо запустить приведенный ниже код (проверено на 12 и 14)

Apc.stat = "1" заставит APC статировать (проверять) скрипт при каждом запросе, чтобы определить, был ли он изменен. Если он был изменен, он перекомпилирует и кэширует новую версию.

Если этот параметр выключен, APC не будет проверять, что обычно означает, что для принудительной повторной проверки файлов APC необходимо перезапустить веб-сервер или очистить кеш вручную. Обратите внимание, что конфигурации веб-сервера FastCGI могут не очищать кеш при перезапуске. На производственном сервере, где файлы сценариев меняются редко, значительного повышения производительности можно добиться за счет отключения статистики.

В новом интерфейсе администратора APC есть опции для добавления / очистки кеша пользователя и кеша кодов операций. Одна интересная функция - добавить / обновить / удалить каталоги из кеша opCode.

enter image description here

Создайте файл APC.php

Запустите его в своем браузере.

Мой обходной путь для сборки Symfony с добычей экземпляров на том же сервере:

Шаг 1. Создайте триггер или что-то еще, чтобы установить флаг файла (например, команду Symfony), затем создайте marker file ..

Шаг 2. В индексный файл при запуске добавьте код очистки и удалите marker file .

Шаг 2. Запустить приложение.

У нас была проблема с APC и символическими ссылками на символические ссылки на файлы - похоже, он игнорирует изменения в самих файлах. Как-то помогло прикосновение к самому файлу. Я не могу сказать, в чем разница между изменением файла и прикосновением к нему, но как-то это было необходимо .

Моим решением для очистки из командной строки было написать сценарий, который копирует сценарий очистки APC в каталог web и обращается к нему, а затем удаляет его. Доступ к сценарию ограничен с локального хоста.

apc_clear.php

Это файл, который сценарий копирует в веб-каталог, получает доступ и удаляет.

Скрипт очистки кеша

Этот сценарий копирует apc_clear.php в веб-каталог, обращается к нему, а затем удаляет его. Это основано на задаче Symfony. В версии Symfony выполняются вызовы формы Symfony для копирования и отмены связи, которые обрабатывают ошибки. Вы можете добавить проверки, что они успешны.

Для меня хорошим решением было просто больше не использовать устаревший пользовательский кеш после развертывания.

Если вы добавите префикс к каждому из ваших ключей, вы можете изменить префикс при изменении структуры данных записей кеша. Это поможет вам добиться следующего поведения при развертывании:

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

PHP является очень популярным языком для динамических сайтов, таких как те, которые используют WordPress. Разбор PHP-скриптов, их преобразование opcode и повторное преобразование в машинный код может сильно нагружать процессор. Это в свою очередь влияет на скорость и производительность сайта. В своих предыдущих постах (это и это) я показал, как проверить скорость загрузки сайта, и описал несколько способов ее улучшения. В этом посте я собираюсь описать, как установить и использовать альтернативный кеш PHP (APC) для кэширования PHP файлов / кодов. Это приводит к ускорению выполнения, снижению нагрузки на процессор и повышению скорости работы сайта. Для тех, кто самостоятельно размещает свой сайт WordPress или чей хостинг-провайдер предлагает APC, я также собираюсь объяснить, как заставить APC работать с W3 Total Cache, лучшим плагином кеша WordPress.

Рекомендуемые руководства:

Как работает альтернативный PHP Cache

Кэши APC часто получают доступ к файлам и кодам PHP в opcode формате, который является промежуточным кодом из проанализированных и скомпилированных сценариев PHP. Кэшированные коды операций находятся в разделяемой памяти и обслуживаются по мере необходимости, что снижает необходимость повторного анализа и компиляции PHP-кодов. В отличие от других систем кэширования, таких как memcached APC, хранятся как код операции, так и данные. Memcached хранит только те данные, к которым приложения получают доступ через TCP. Поэтому обычно (есть исключения), если у вас установлен и работает APC, он вам не нужен memcached .

Шаг 1: Установите APC в Ubuntu

В отличие от предыдущих выпусков Ubuntu, установка APC в Lucid Lynx (10.04) и более поздних версиях чрезвычайно проста. Это доступно через репозиторий. Хотя вы можете скомпилировать и установить последнюю версию APC (репозиторий Ubuntu обычно немного устарел), я рекомендую в случае совместимости использовать маршрут установки репозитория. Вы можете установить APC с помощью следующей команды:

В процессе установки вам будет задан ряд вопросов, касающихся активации экспериментальных модулей. Я рекомендую не включать экспериментальные модули. Вы можете нажать Enter, чтобы выбрать [по умолчанию]:

Шаг 2. Проверьте установку APC

Вы можете проверить, установлен ли APC и работает ли он, используя следующую команду:

Вывод должен выглядеть примерно так, как показано ниже. Не беспокойтесь о деталях в выводе еще. Это будет зависеть от ваших настроек APC, которые обсуждаются позже в этом посте.

Шаг 3: Проверьте веб-интерфейс APC

APC поставляется с отличным веб-интерфейсом, который предоставляет множество информации. Это не включено по умолчанию. Чтобы включить его, вам нужно будет скопировать файл в корневой каталог вашего сайта:

Мы еще не закончили. По соображениям безопасности я настоятельно рекомендую вам отредактировать apc .php файл и изменить имя пользователя и пароль по умолчанию ( apc и password ):

Кроме того, убедитесь, USE_AUTHENTICATION что установлено 1 :

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Шаг 4. Настройка параметров APC

Настройки APC по умолчанию, сохраненные в, /etc/php5/conf.d/apc.ini могут работать нормально, но рекомендуется настроить несколько значений. Подробное объяснение этих значений можно найти здесь.

Если у вас установлен плагин W3 Total Cache для WordPress, он попадает apc .ini в wp-contentpluginsw3-total-cacheini папку с хорошими значениями по умолчанию. Я рекомендую вам все еще изменить следующие значения:

apc.stats

Во время разработки и тестирования установите значение «1» (включено). Когда установлено в единицу, изменения файла проверяются каждый раз, когда вызывается кэшированный код операции. Таким образом, любые изменения, которые вы делаете, сразу видны. W3 Total Cache будет работать только в том случае, если для этого значения установлено значение «1». После того, как вы закончили со всеми изменениями и изменениями, установите это значение на «0» (отключено), чтобы повысить производительность и скорость, так как APC будет навык перепроверять файлы при каждом запросе.

apc.shm_size

Это фактический размер кеша. По умолчанию 30 МБ (или 32 МБ, если вы используете apc .ini файл W3 Total Cache ). Я рекомендую увеличить его, если у вас достаточно оперативной памяти. Я рекомендую увеличить его, скажем 128 MB , так, как я сделал. Рекомендуется выделять как минимум вдвое больше памяти, используемой APC. Контролируйте APC часто в течение нескольких часов (я следил за ним в течение 1 дня). Как показано на рисунке ниже (из веб-интерфейса APC), в среднем мой APC использовал около 45 МБ из выделенных 128 МБ. Поэтому мне нужно всего лишь выделить 90 МБ. Поскольку объем оперативной памяти для меня не важен, я оставлю его на 128 МБ.

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Диаграмма состояния хоста APC

Объем памяти, выделенной для apc .shm_size будет влиять hits/misses , cache full count и fragmentation . Попадания / пропуски – это злые вещи в кеше, а не в кеше. Это нормально видеть некоторые промахи. Как показано на рисунке выше, мой уровень в значительной степени оставался выше 99% после нескольких минут работы APC. Если вы видите cache full count (как показано на скриншоте веб-интерфейса ниже) быстрое увеличение, то увеличьте выделенную память.

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Информация о кеше файла APC

Рекомендуемые руководства:

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

Использование памяти APC и фрагментация

Не забудьте перезапустить Apache после любого изменения. Ниже мой полный apc .ini файл:

Шаг 5. Настройка общего кэша W3 для использования APC

W3 Total Cache – безусловно, лучший плагин кэширования для периода WordPress. Хотя я начал с Quick Cache, с тех пор я перешел на W3 Total Cache.

Сложная часть установки и настройки APC завершена. Настроить W3 Total Cache для использования APC очень просто. Все, что вам нужно сделать, это перейти с панели управления WordPress Performance- > General Settings и выбрать APC для кэша страниц (как показано на рисунке ниже), Minify, Object Cache и Database Cache:

Альтернативный PHP Cache (APC) с W3 Total Cache для WordPress

W3 Total Cache – Общие настройки

Точно так же выберите APC для Minify, Object Cache и Database Cache. На самом деле, я рекомендую вам включить кэш базы данных, только если у вас запущен APC. Кэширование базы данных на диске может быть не лучшим для производительности (по крайней мере, так показали мои исследования).

Когда я искал установку и настройку APC, мне было трудно выяснить все детали. В этом посте обобщено все, что вам нужно знать, чтобы установить и настроить альтернативный PHP-кеш в Ubuntu и заставить его работать с W3 Total Cache для WordPress. В моем случае показатели GTMetrix и Pingdom немного увеличились после этого. Надеюсь это поможет. Если у вас есть другие идеи, пожалуйста, поделитесь с нами в разделе комментариев.

Кэш приложений может быть спорной темой на Android. Многие люди постоянно чистят кэш приложений, веря в то, что это позволит смартфону работать быстрей. Другие говорят, что это, в первую очередь, сводит на нет всю цель кэширования и просто увеличивает время запуска приложений и выполняемых действий. Истина, как обычно, где-то посередине. Некоторые приложения могут не использовать кэширование эффективно, из-за чего используются излишне большие объемы памяти. Иногда кэш может вызывать проблемы после выхода обновления и надо его сбрасывать. А еще некоторые приложения могут начинать работать медленнее, когда их кэш становится очень большим. Сказать однозначно, надо ли его удалять, нельзя. Но сейчас рассмотрим эту тему подробнее, чтобы вы понимали, когда это делать и как?


Надо ли чистить кэш телефона?

Что такое кэш на Андройд

Кэширование в компьютерном мире это то, что позволяет приложениям, таким, как браузеры, игры и потоковые сервисы хранить временные файлы, которые считаются актуальными для уменьшения времени загрузки и увеличения скорости работы. YouTube, Карты, музыкальные сервисы и множество других приложений сохраняют информацию в виде данных кэша. Это могут быть миниатюры видео, история поиска или временно сохраненные фрагменты видео. Кэширование может сэкономить много времени, так как качество и скорость Интернета не везде одинаковы. Но по иронии судьбы, когда приложения выгружают много данных на ваш телефон, это в конечном итоге замедляет его работу, особенно, когда остается мало места на встроенной памяти.

Наш Иван Кузнецов не так давно писал о том, что никогда не чистит кэш и считает это не нужным. Многие из вас, возможно, с ним не согласны. Да я и сам переодически провожу эту процедуру. Тем не менее, для полноты картины можете ознакомиться с его мнением.

Очистка кэша и данных на Android

Хотя мы часто упоминаем очистку кэша и данных в одном ключе, на Android это два совершенно разных действия. Например, музыкальные сервисы часто сохраняют в кэш информацию, относящуюся к исполнителям, которых вы слушали, но которые не входят в вашу библиотеку. Когда кэш приложения очищается, все упомянутые данные стираются.


Очистка лишней не будет? Не факт.

Более существенные данные включают в себя пользовательские настройки, базы данных и данные для входа в систему. Когда вы очистите кэш, это все удалится и будет не очень приятно. Если говорить грубо, можно сказать, что очистка кэша придает приложению тот вид, который был сразу после его установки, но у вас останутся данные, которые вы сами осознанно сохранили (загруженные песни, видео в оффлайн, карты и так далее). Если вы удалите и эти данные, то приложение будет вообще нулевым. Если чистите и кэш, и данные, проще тогда и приложение переустановить, чтобы вообще все красиво было.

Как очистить память смартфона. Пять простых шагов.

Когда надо чистить кэш

В чем-то я согласен с Иваном и с его мнением, которое я приводил в начале статьи. Нет смысла чистить кэш часто. После того, как вы его очистили, приложение все равно его создаст заново. Только в это время оно будет работать еще медленнее.

Тут важно найти баланс и понять, действительно ли ваш смартфон тормозит из-за кэша или, например, он просто старый и уже не тянет. Если не вникать в это, то можно посоветовать чистить кэш один раз в 3-6 месяцев, но быть готовым, что первые несколько дней скорость работы будет чуть ниже. В итоге, вы как бы освежите приложение, удалив лишний мусор и заново собрав только то, что нужно.

Google Play рассылает пустые обновления приложений. Что делать?

Как очистить кэш и данные на Android

Точную инструкцию для каждого смартфона дать не получится, так как все зависит от производителя и версии ОС, но общие правила будут следующими.

Шаг 1: Запустите «Настройки» и перейдите в раздел «Хранилище» (или найдите его поиском). Так вы сможете узнать, сколько памяти вашего смартфона занято и чем.

Шаг 2. В разделе «Хранилище» найдите «Приложения» (или «Другие приложения») и выберите его. В нем будут перечислены все приложения, а также то, сколько места каждое из них занимает. В некоторых версиях ОС можно найти сортировку приложений по алфавиту или размеру.

Шаг 3: Зайдите внутрь приложения и удалите кэш или данные. Только надо понимать, что это действие необратимо.


Три простых шага для очистки кэша.

В отношении специальных приложений для очистки я очень категоричен и не рекомендую ими пользоваться. Несмотря на их обещания ускорить систему чуть ли не в разы, в лучшем случае они просто сделают то же, что я только что описал. Так почему бы не сделать это самому без установки сомнительных приложений, которые еще и будут собирать ваши данные? Единственное приложение-оптимизатор, которому я доверяю, это Google Файлы, но работает оно именно с хранилищем и чистит в первую очередь мусор. Хотя, на него тоже нельзя слепо полагаться, но оно сделано Google, а к ней доверия куда больше, чем к каким-то левым разработчикам.

Если вы все еще хотите установить подобное приложение, просто помните о том, что они работают в фоновом режиме и используют системные ресурсы. Даже если они что-то ускорят, то сразу замедлят обратно.

Надо ли чистить кэш Android-приложений

Еще больше полезных советов и рассуждения в нашем Telegram-канале.

Еще раз: очистка кэша не испортит ваш смартфон, но приложение потеряет часть сохраненных данных и оптимизированных под вас настроек. Некоторое время придется накапливать их заново, зато так можно убрать действительно лишнее. Раньше можно было одной кнопкой очистить кэш всех приложений, теперь только по одному, но, наверное, это к лучшему.

Чего точно не стоит делать с кэшем, так это чистить его каждый день или каждую неделю. Так вы точно не сделаете лучше никому.

Читайте также: