2.8.7. memory_limit

Параметр memory_limit задає максимальний обсяг пам'яті, який можуть використовувати скрипти сайту. Обмеження обсягу пам'яті допомагає запобігати ситуації, при яких неякісно написані скрипти витрачають всю доступну пам'ять сервера.

Встановлений для memory_limit обсяг пам'яті виділяється для кожного запущеного скрипта окремо, тому одночасний запуск декількох скриптів не може спожити всю виділену пам'ять memory_limit, але може спожити всю оперативну пам'ять хостинг-аккаунта (можна побачити на графіках споживання серверних ресурсів). Важливо розуміти, що при запуску скрипта кількість пам'яті, що виділяється під ліміт memory_limit, що не «забирається» з оперативної пам'яті. Пам'ять виділяється поступово у міру її споживання кожним скриптом, але не може перевищувати заданий ліміт, тому думка, що запустивши два скрипта при значенні memory_limit 1024 МБ буде використано відразу 2048 МБ, в корені невірно.

Визначити заздалегідь, скільки пам'яті або який ліміт memory_limit буде потрібно сайту або скрипту, практично неможливо, так як все залежить від якості самих скриптів і обсягів даних, які вони обробляють.

Примітка

У разі перевищення скриптами сайту доступного обсягу пам'яті може виникати помилка «Fatal error: Allowed memory size of XXX bytes exhausted (tried to allocate YYY bytes)». З описом і варіантами її вирішення можна ознайомитися в тут.
  • Чи не впливає на швидкість роботи сценаріїв.
  • Максимальне значення залежить від використовуваного тарифу:
    • На звичайному хостингу — від 512 до 1536 МБ в актуальних тарифух і від 64 до 256 МБ в архівних тарифух.
    • На бізнес-хостингу — в межах доступного за тарифом обсягу оперативної пам'яті.
  • Для консолі та cron значення за замовчуванням дорівнює 512 МБ.

Примітка

Значення memory_limit в настройках PHP сайту не впливає на значення за замовчуванням в консолі та cron. Для запуску скрипта консольної командою зі значенням параметра як на сайті використовуйте інструкцію.
  1. Відкрийте розділ «Налаштування PHP» сайту, для якого потрібно змінити значення параметра.
  2. Навпаки «php_memory_limit» виберіть зі списку потрібне значення і внизу сторінки натисніть «Зберегти»:
  3. Зачекайте приблизно 10-15 хвилин, поки зміни вступлять в силу.

Увага!

Купівля додаткових послуг Memcache(d), Redis або OPcache не збільшує значення memory_limit.
  • Тимчасове — на 2 години до 256 МБ за допомогою Turbo Boost (Актуально для архівних тарифів з memory_limit 64 або 128 МБ).
  • На постійній основі:
Зміст