Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166859
  • 博文数量: 47
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 466
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-31 23:12
个人简介

知乎:http://www.zhihu.com/people/chanpinjinglizhilu

文章分类

全部博文(47)

分类: 系统运维

2014-12-29 10:34:41

篇首:俺自己很low,写的东西也很low,各位前辈已经各种总结的,so,大家轻喷啊,俺只是为了记录一下子。  
刚刚不经意间查看关于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,我去!我一口老血喷在了显示器上啊!苍天啊,我曾经一度怀疑自己是不是在做无用功啊!

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






阅读(1323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~