开发者资讯

 首页 > 开发者资讯 > 编程开发 > 对于LAMP的思考:性能优化总结

对于LAMP的思考:性能优化总结

分享到:
【字体:
导读:
          刚刚不经意间查看关于php加速方面的消息,看到了一句话“lamp结构的瓶颈在于M”,感觉是真知灼见,当然这是在理想状态下的情况。对于实际情况下的生产环境来说,需要解决的问题是多种多样的,l-a-m-p在不同阶段需要优化的点是不同的。

刚刚不经意间查看关于php加速方面的消息,看到了一句话“lamp结构的瓶颈在于M”,感觉是真知灼见,当然这是在理想状态下的情况。对于实际情况下的生产环境来说,需要解决的问题是多种多样的,l-a-m-p在不同阶段需要优化的点是不同的,虽然通过努力最终的瓶颈在于M,但是期间的各种努力也是不容忽视的。下面我就意识流的总结一下,在网站生产环境遇到的各种问题。

以下是之前遇到问题的各种汇总:

1、php内的sql代码性能存在问题

这个存在于两方面,一个是sql本身优化不够,另外一个方面是随着数据量的增加,某些性能问题会逐渐暴露。


2、apache处理模式造成的内存消耗

由于apache是以进程的形式,同步阻塞式的处理http请求,so,当网页本身加载元素过多的话,会造成大量的http进程并发,消耗服务器大量的内存,导致访问缓慢或者异常。解决办法很是简单,主要有以下几个方面:

a、动态页面转成静态页面。
b、转成lnamp的模式,图片等静态资源由nginx进行处理,减少http进程数量


3、CDN服务的使用

这个并不是性能问题,而是为了解决用户访问的页面加载速度问题,以及不同网络之间的延迟问题。具体使用效果是非常不错的,会大大的改善各地用户的访问速度,土豪公司可以自建CDN,中小公司选择第三方服务也是不错的选择。


4、缓存的使用

这个有两个方面的缓存,其中主要的缓存是数据也就是动态方面的缓存。使用的软件主要有redis以及memcache(两个软件都是针对php与mysql之间的请求进行缓存,减少与mysql的直接交互,提高访问速度。


5、apache的负载均衡,mysql的读写分离

即便增加了CDN、缓存,优化了apache的页面,但是高并发的问题依然会随着用户量的增加而慢慢出现,那么这个时候就要发大招了,扩!容!硬!件!。永远都好使的大招,用完即生效。我们现在主要使用的是nginx+apache的负载均衡方式。而mysql的读写分离也so easy,使用主从复制即可。对于及时性要就不是太高的网页访问,问题不大。


6、奇葩问题粗现了!!!

Then,该优化的俺们都优化了,前辈的经验也是各种借鉴,最后俺们发现页面访问还是慢得想让用户注销。问题到底在哪?又经过了艰苦卓绝的调查与研究,最后发现,上一个离职的哥们开放的一个权限系统(所有网页加载都会用),没有关闭debug,我去!我一口老血喷在了显示器上啊!苍天啊,我曾经一度怀疑自己是不是在做无用功啊!

这里不是挑起运维与研发的阶级矛盾,而是总结经验教训,以后不在走弯路!先到这吧!以后有了经验再补充!

分享到:
为什么每个程序员都应学习代码编译器知识
所有优秀的计算机科学学院都提供了编译器课程,但是相对比较少的学校把它作为本科课程的必修部分。这篇文章回答了这个问题:为什么需要学习编译器知识?即使你从没打算过编写编译器。 我写这篇文章的其中一个原因是,尽管我在读本科时很喜欢编译器课程,但是我几乎看不到它的实际作用。大多数资料看起来要么简单易懂,要么...
盘点开发者最喜爱的Swift技巧
Swift发布才半年左右,却已深得众多开发者的青睐,也有了许多学习资源、项目和开发工具。在本文中,来自objc.io、LinkedIn等各个公司的软件工程师及资深开发者总结了自己在接触Swift过程中最喜爱的贴士与技巧。 屈指算来,Swift语言才发布半年左右,却已深得众多开发者的青睐,也有了许许多多的学习资源、项目和工具。在...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……