LAMP/LNMP(Linux,Apache/Nginx,MySQL,PHP)是世界上最流行的Web开发栈。它经过了事实的验证,性能健壮并且可靠很多网站在很高负载情况下,靠着单台服务器也能跑得很流畅。
苍老师有云,初级和高级工程师的区别是啥? 初级,机器内存不够了,得加机器。 高级,内存占用不正常,已经找到原因。 初高级一部分在思想,一部分在实战。 那么什么时候需要做负载均衡或分布式?
常见的性能负载场景,有如下列表:
1 MySQL I/O瓶颈 2 Apache或nginx加载PHP虚拟机,大量内存与CPU被占用 如果还没有出现502等崩溃问题,证明Linux自己做了一些优化处理。
我们如何改进这个系统架构。最简单的是加机器硬件(垂直缩放)以及拆分组件(水平缩放),如果能根据流量做智能的负载均衡会更好。
关于性能的几个方面。请如下列表:
1 DNS服务器 DNS做为域名解析。内部网络的解析策略,活用Host文件。 2 负载均衡 使用LVS,HAProxy 3 Web服务器 Nginx与PHP-FPM优化 4 数据库服务器 MySQL优化,存储引擎活用 5 缓存服务器 使用Redis、memcache 6 Work Server Gearman或Swoole服务,异步请求处理 7 中间代码缓存 OpCode与APC 8 代码层优化 代码扩展性与性能调优 9 系统级优化 10 硬件优化
常见的系统分块与性能处理,我们面临有如下挑战:
1 图片上传与存储 2 DNS服务器优化 3 MySQL水平扩展 4 MySQL备份 5 API优化 6 Mc/Redis/OpCode 7 varnish/Squid/CDN 8 HTTP Cache与Nginx FastCgi Cache 以上每个主题都可以写一篇章节,后面我们会渐次在公众号和网站放出。 虽然主题是以PHP为主阐述的,其实可以覆盖到任何一门语言,如Python,Ruby和Java,包括性能优化技巧。
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|