我为 Facebook 创建了 PHP 应用程序。它使用 MySQL、Memcached 并在 Centos 2,6 Ghz 和 2 GB RAM 上的 Lighttpd 上工作。
它基本上是一个 PHP 文件,在第一次运行后被缓存,并且每次下一次直接从 Memcached 提供 0.8 毫秒。
我还能做些什么来缩短这个时间?
我为 Facebook 创建了 PHP 应用程序。它使用 MySQL、Memcached 并在 Centos 2,6 Ghz 和 2 GB RAM 上的 Lighttpd 上工作。
它基本上是一个 PHP 文件,在第一次运行后被缓存,并且每次下一次直接从 Memcached 提供 0.8 毫秒。
我还能做些什么来缩短这个时间?
一旦达到 0.8 毫秒,我不确定你是否可以再降低。
但是,您可以设置多个服务器来处理许多并发请求(使用一个通用的 memcached)。然后,您将能够通过在达到限制时简单地添加新服务器来进行非常高的扩展。
运行 XDebug 并运行分析器。在那里,您可以查看是否有任何需要异常时间的功能。
我建议使用读取这些日志的程序。像 kcachegrind 等。
顺便说一句,当您进入分析器国家/地区时,没有回头路。
您可以将 http-proxy 和负载平衡放到多个服务器上。大多数 http 代理可以兼作缓存,从而减轻应用程序的负载。
此外,请确保您发送正确的 http 标头,以便您的页面可在客户端缓存。这可能会减少请求的数量,因为客户端将重用其缓存版本。
您是否有一个从 memcached 获取数据并显示它们的 php 脚本,或者 Web 服务器本身直接从 memcached 获取数据?
我不知道lighthttpd是否可以直接从memcached显示页面,但我知道nginx可以为ngx_http_memcached_module做这个google