Я создал приложение PHP для Facebook. Он использует MySQL, Memcached и работает на Lighttpd на Centos 2,6 Ghz и 2 GB RAM.
это в основном один файл PHP, который после первого запуска кэшируется, и каждый следующий раз он обслуживается в 0,8 мс непосредственно из Memcached.
Что еще я могу сделать, чтобы сократить это время?
Как только вы доберетесь до 0,8 мс, я не уверен, что вы можете пойти ниже.
Однако вы можете настроить несколько серверов для обработки множества одновременных запросов (с общим memcached). Затем вы сможете масштабироваться очень быстро, просто добавив новый сервер, когда вы достигнете пределов.
Запустите XDebug и запустите профайлер . Там вы можете увидеть, есть ли у вас какие-либо функции, которые вызывают ненормальный период времени.
Я рекомендую использовать программу, которая читает эти журналы. Как kcachegrind и т. Д.
Кстати, когда вы входите в страну профайлера, нет возврата назад.
Вы можете поместить http-прокси и баланс нагрузки на несколько серверов. Большинство HTTP-прокси могут удвоиться в качестве кеша, что может снять нагрузку с приложения.
Кроме того, убедитесь, что вы отправляете надлежащие заголовки HTTP, чтобы ваши страницы были кэшируемыми на стороне клиента. Это может уменьшить количество запросов, так как клиенты будут повторно использовать свою кешированную версию.
У вас есть php-скрипт, который получает данные из memcached и отображает их, или сам веб-сервер получает данные непосредственно из memcached?
Я не знаю, может ли lighthttpd отображать страницу непосредственно из memcached, но я знаю, что nginx может сделать это google для ngx_http_memcached_module