1 / 1 / 0
Регистрация: 05.09.2011
Сообщений: 14
|
|
1 | |
Как уменьшить выделяемую память для PHP скриптов?05.09.2011, 02:09. Показов 2229. Ответов 8
Метки нет (Все метки)
Linux 2.6.32 + PHP Version 5.3.3-7+squeeze3
Когда пользователь заходит на php-страницу, то сервер выделяет оперативную память для выполнения php скрипта. А есть на страницу одновременно зашло 100 тыс человек, то сервер выделит 100000 * объем под один скрипт? если да можно настроить чтобы выделялась только память под данные, а под бинарный php-код выделялась оперативка только один раз ? если нельзя, то хотя бы как уменьшить объем памяти под каждую копию одного и того же выполняемого php скрипта?
0
|
05.09.2011, 02:09 | |
Ответы с готовыми решениями:
8
Сократить время работы и выделяемую память Помогите оптимизировать память, выделяемую под массив. Какая польза от использования dynamic - экономит ли память,выделяемую на переменные?(т.е одна вместо многих) Уменьшить используемую память для программы |
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
05.09.2011, 11:01 | 2 |
1) Изуйчас Hi-load рассказы
2) Попробуй memcache. 3) Память выделяется динамически, то-есть каждый запрос берет сколько надо, а не максимум.
0
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
05.09.2011, 11:36 | 4 |
А вообще, я думаю на такие проекты можно уже в облако лезть и не париться о количестве ядер/оперативы. Да и 100к юзеров позволят это оплатить.
0
|
1 / 1 / 0
Регистрация: 05.09.2011
Сообщений: 14
|
|
05.09.2011, 19:31 [ТС] | 5 |
Ну так у меня и про кластерные системы вопросы будут, а пока даже если есть средства купить кучу серваков то это же не значит что не надо оптимизировать, у меня простой нересурсоемкий скрипт, но к нему очень много одновременных запросов.
Добавлено через 3 минуты Да еще одно, есть ли разница в моей проблеме при php как модуле апача или как fast_cgi ?
0
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
06.09.2011, 12:00 | 6 |
Второе быстрее. Но надо больше волноваться о безопасности.
0
|
1 / 1 / 0
Регистрация: 05.09.2011
Сообщений: 14
|
|
06.09.2011, 16:07 [ТС] | 7 |
Понимаю, все зависит от конкретной задачи, вот вкратце: Несколько простых небольших php скриптов + mysql , но большое кол-во одновременных запросов к страницам от пользователей через серверные редиректы на php скрипты. большая БД, чтение по индексам = 95% от всех запросов, запись/обновление базы = 5%.
И покопав сутки интернет, вот что я выбрал... Прошу кидайте коменты, ниже написал два вопроса. Оптимизация. 1. использовать php транслятор HipHop, он же кеширует байткод. 2. кешировать обращения к MySQL, использую Memcached. 3. кешировать статику и динамически создаваемые скриптами html страницы, используя Squid или лучше Varnis. 4. разделение статики и динамики, под первое юзать lighttpd или nginx на отдельном ip или поддомене, для второго web-сервер HipHop. Получается например такая связка: Linux+lighttpd+Varnis+HipHop+Mysql Масштабируемость. кластеризация БД - поддержка нескольких датацентров и возможность добавления новых машин в работающий кластер прозрачно для ваших приложений. (MySQL для этого не особо годиться - http://www.linuxshare.ru/docs/mysql/nocluster.html). но можно использовать Cassandra или Riak. Стабильность. Про утечки памяти на такой системе кто что может сказать? Вопросы: 1. как сделать редиректы на php страницы (например с /dir/page1234 на page.php?n=1234 ) ? не понимаю механизма т.к. при использовании lighttpd+hiphop или nginx+hiphop получается два web-сервера, какой надо настраивать чтобы сделать редирект на php страницы? на lighttpd в url.rewrite-once = что то типа этого "^/dir/(\d+)/?$" => "page.phpn=$1" , но есть надо настраивать через сервер hiphop то как? 2. как работает Memcached, Squid, Varnis если под сайт отведены несколько физических серверов? из оперативки или жесткого диска какого сервера будет браться кеш? можно ли то сделать прозрачно?
0
|
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
|
|
06.09.2011, 16:25 | 8 |
Memcache на сервер базы данных, это кеш в памяти. На high-load проектах кеш на диске почти бессмысленный, кроме каких-либо редкоизменяемых, но все же динамических деталей.
Смысл Squid? Что он будет делать? P.S. за такие нагрузки сам не брался, буду рад, если расскажешь что/как/зачем/получилось ли/костыли/etc .
0
|
1 / 1 / 0
Регистрация: 05.09.2011
Сообщений: 14
|
|
06.09.2011, 18:28 [ТС] | 9 |
я просто в кучу все свалил в вопросе) Memcache конечно в оперативке кеширует, вопрос в том как устроен механизм распределения между разными физ машинами, я так понимаю что при таком кластере сначала надо определить какая машина будет обрабатывать запросы конкретного пользователя в зависимости от той части ДБ которая ему нужна и соединить его именно с этой машиной.
Squid или Varnis нужны чтобы разгрузить сервер от необходимости моим php скриптам генерить одни и те же html. Идея была такая (опишу простыми словами) - чтобы наши php скрипты при изменении БД удаляли из кеша старые html что дает гарантию обращения к php при новом запросе страницы для генерации нового html, иначе web-сервер будет выдавать статику из кеша без обращения к php.
0
|
06.09.2011, 18:28 | |
06.09.2011, 18:28 | |
Помогаю со студенческими работами здесь
9
Как уменьшить оперативною память, не вытягивая ее физически? Как уменьшить память которую использует программа? Бесплатная IDE для отладки php-скриптов? Как повысить производительность PHP скриптов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |