我正在用 PHP 创建一个新的 Web 应用程序,我想以一种随着时间的推移可以很好地扩展的方式来创建它。
我应该或不应该做什么?我知道我应该缓存,但我应该缓存什么以及如何缓存?我还能做些什么来让网站保持快速加载?
我正在用 PHP 创建一个新的 Web 应用程序,我想以一种随着时间的推移可以很好地扩展的方式来创建它。
我应该或不应该做什么?我知道我应该缓存,但我应该缓存什么以及如何缓存?我还能做些什么来让网站保持快速加载?
注意:这不是我写的,而是YC 新闻的 Snorkel写的
这是一个简短的列表:
Varnish
:使用或其他反向代理缓存。APC
或XCache
PHP 操作码缓存。memcached
:使用、redis
、 文件缓存和应用程序级缓存(即全局变量)减少数据库接触Apache
, MySQL
, 并且Linux
有很多影响性能的设置,尤其是超时设置应该被调低。strace
和查询日志来查看哪个层使用最多的时间和资源top
iostat
vmstat
大多数情况下,PHP 速度变慢是因为每个 PHP 进程都被阻止等待来自其他层的 I/O,无论是慢速磁盘,还是过载的数据库,或者挂起的 memcached 进程,或者对 3rd 方服务的缓慢 REST API 调用...... . 通常只是 strace'ing 一个实时的 PHP 进程会告诉你它在等待什么......简而言之,阻塞 I/O 会减慢一切。跑得更快的关键是:
扩展到多个前端还需要复制您网站的根目录及其动态内容。
GlusterFS 是一个不错的补充,但我不清楚它的扩展能力如何。另一种选择是 Lsyncd。其他替代方案可能包括用于代码的 GIT 和用于动态内容的 CDN。
您应该添加:使用 gzip 压缩输出。