#php #linux #apache #drupal
#php #linux #apache #drupal
Вопрос:
У нас есть веб-сайт, у которого предыдущий лимит памяти составлял 12 МБ (12 МБ в php.ini и 16 МБ в settings.php ) и работал ранее.
После перехода на новый сервер он начал выдавать ошибки ограничения памяти и отображать полупустой экран.
Мы увеличили лимит в обоих файлах (php.ini и settings.php ) и теперь это работает, но я не понимаю, как это возможно, что теперь ему требуется значительно больший объем памяти (раньше он работал с 12 МБ, теперь он продолжает работать с менее чем 20 МБ).
Комментарии:
1. Те же версии PHP? Установлены те же модули?
2. Пожалуйста, добавьте версии Apache и PHP старого и нового серверов. Был ли memcache или что-то подобное на старом сервере?
3. Может быть, вы перешли с 32-разрядной операционной системы на 64-разрядную?
4. @edwin: да, я думаю, что, вероятно, это так, я не уверен, был ли старый сервер 32- или 64-разрядным, но новый определенно 64-разрядный
Ответ №1:
Я предполагаю, что вы не меняли ОС в процессе. Переход с Windows на Linux или наоборот, скорее всего, изменит использование ресурсов.
И это рискованно, но, возможно, вы перешли с 32-разрядной системы на 64-разрядную? Это немного увеличило бы использование памяти, поскольку адреса (указатели) в два раза больше на 64-разрядных архитектурах, а код с большим количеством небольших объектов использует большое количество указателей.
В целом, однако, мы не можем сказать вам многого, не увидев, что изменилось в системе.
Ответ №2:
12 слишком мало, если вы используете не только drupal в его нынешнем виде. Рекомендуется чем больше модулей вы установите, тем больше, обычно для обработки изображений достаточно 96 МБ…
Ответ №3:
12 МБ действительно очень мало. Я бы предпочел проигнорировать это и продолжить.
Идеи, что могло бы измениться, хотя:
-
На старом сервере могли быть установлены модули, которые уменьшали использование памяти, например
memcache
-
Новому серверу, возможно, придется полагаться на
GD
библиотеку для обработки изображений, в то время как на старом сервере, возможно, она былаImageMagick
(которая является внешним инструментом и не учитывается при расчете лимита памяти)