Как улучшить производительность PHP?

Мы создали PHP-приложение для Facebook. Он использует MySQL, Memcached и работает на Lighttpd на Centos 2,6 ГГц и 2 ГБ оперативной памяти.

Это's в основном один файл PHP, который после первого запуска кэшируется и каждый разПодается за 0,8 мс непосредственно из Memcached.

Что еще я могу сделать, чтобы сократить это время?

 Miha Hribar01 окт. 2009 г., 01:27
Вы пробовали это с APC?
 markus30 сент. 2009 г., 11:36
возможно, если производительность настолько важна, вы должны написать приложение на другом языке и использовать несколько серверов.
 Ree30 сент. 2009 г., 11:21
Вопрос в том, почему вы хотитесделать это время меньше "?
 Tomasz Smykowski30 сент. 2009 г., 11:23
Потому что, когда я опубликовал это приложение в прошлый раз, у меня было 10 000 одновременных запросов. Так что'с 10к * 0,8 мс = 8 секунд. И это'слишком долго
 code_burgar30 сент. 2009 г., 11:23
0,8 мс - чертовски быстро
 Tomasz Smykowski30 сент. 2009 г., 11:39
@tharkun - сайт отображается непосредственно из Memcached, поэтому смена языка мало чем поможет.
 StackOverflowed02 сент. 2012 г., 15:07
@ markus-tharkun PHP здесь не виноват. 0,8 мс довольно оптимизировано. Вам нужно будет распределить ваши звонки, как это выглядит. Добавление процессорных ядер (это довольно легко сделать, если вына облачный хостинг) определенно поможет.

Ответы на вопрос(4)

профайлер, Там вы можете увидеть, есть ли у вас какие-либо функции, которые занимают ненормальное время.

Я рекомендую использовать программу, которая читает эти журналы. Как kcachegrind и т. Д.

Кстати, когда вы вводите страну профилировщика, тамнет пути назад.

 Tomasz Smykowski30 сент. 2009 г., 13:45
@Olafur Извините, если я не уточнил свой вопрос. Но, как вы написали, я снова спросил свой код. Так что спасибо - это может быть решением.
 Ólafur Waage30 сент. 2009 г., 12:52
Тогда вы должны заметить, что, поскольку вы помечаете его как PHP и говорите о приложении PHP
 Tomasz Smykowski30 сент. 2009 г., 11:50
Здравствуйте, My Code в основном только получает HTML из Memcached и отображает его пользователю.
 troelskn30 сент. 2009 г., 15:59
Даже если страница проста, вы можете узнать что-то от профилировщика. Есть много темных углов, где вы можете делать микрооптимизации.
Решение Вопроса

Однако вы можете настроить несколько серверов для обработки множества одновременных запросов (с общим memcached). После этого вы сможете масштабироваться очень просто, просто добавив новый сервер, когда достигнете пределов.

 ryeguy30 сент. 2009 г., 16:05
Согласовано. Вы можете многое сделать только со стороны программного обеспечения, прежде чем начинать смотреть на оборудование.

серверов. Большинство http-прокси могут работать как кеш, что может снять нагрузку с приложения.

Также убедитесь, что вы отправляете правильные заголовки http, чтобы ваши страницы могли быть кэшированы на стороне клиента. Это может уменьшить количество запросов, так как клиенты будут повторно использовать свою кэшированную версию.

 Antoine Claval30 сент. 2009 г., 16:27
Заголовок Http! Проверь это !

который получает данные из memcached и отображает их, или сам веб-сервер получает данные непосредственно из memcached?

Я неНе знаю, может ли lighthttpd отображать страницу непосредственно из memcached, но я знаю, что nginx может сделать это в Google для ngx_http_memcached_module

Ваш ответ на вопрос