谈谈12306网站的性能及优化建议

又是一年春运时,每到这个时候,世界上总有一个网站会成为大家又爱又恨的焦点。它承载着满满的期待,承担着空前的责任,承受着广泛的批评,却被迫成为这个星球上瞬时访问量最高的网站,没有之一。它就是12306。2012年春运,12306高峰单日访问量达14亿。2013年春运,12306高峰每秒数据库查询量达2.6万/秒。评价12306网站是一件吃力不讨好的事情,首先对其系统架构的了解不够深入,3亿元开发的系统,说实话不是我们能够简单理解的,其次大家已经骂声一片,进行这样的技术讨论,难免有为12306开脱的嫌疑。不过最近看到有关黄牛破解12306网站限制的文章,以及各大浏览器厂商用“抢票插件”来吸引消费者的目光时,我觉得消费者对12306的理解可能已经出现了偏差,是时候写一篇文章来谈谈这件事了。本文将分两个部分,第一部分分析12306网站频频出现问题的根源。第二部分提出我对改善用户体验和售票服务的一些建议。本文权当抛砖引玉,如有偏差和错误,还请各位谅解。

WordPress建站心得(二)网站架构设计

在上一篇文章《WordPress建站心得(一)前端性能优化》中,我们提到了如何在服务器和网络状况不变的情况下,通过调整优化请求数目和顺序,缩短页面呈现时间,从而提升用户体验。不过,这种优化只是在请求之间的优化,它并不能提升每个请求的响应时间,如果需要继续优化性能,则必须从服务器和网络本身入手。 我们谈到服务器性能,主要有三个比较重要的衡量标准。一是吞吐量,表示网站在一定时间内能有效承载的请求的最大数量,也就是网站能承受多少人同时访问。二是资源消耗,表示网站在处理一定数量的请求时,所消耗的服务器资源,这和网站的成本直接挂钩。三是首包时间,表示网站返回动态(如PHP, JSP)与静态请求(如js,css,jpg)所需要的计算时间。 在这三个标准中,传统的性能优化主要集中在头两个方面,这无可厚非,因为直接涉及到网站的运营成本和覆盖范围。诚然,这三个标准其实相互作用,一个性能优良的网站,必然会有较高的吞吐量,较低的资源消耗,以及较低的首包时间。不过这并非完全正确,因为采用传统方法优化服务器架构,只能在前两方面有所进步。比如,采用web–>application–>db三层服务器集群,中间通过load balancer来动态调配,的确能极大增加吞吐量和降低单服务器资源消耗,但首包时间并不会因此而大大降低,反而会因为服务器之间的网络沟通产生延时。 回到WordPress的例子上面,相信很多站长都和我一样,没有充裕的budget,只是凭个人爱好而建站,必然没有那么多资源建设庞大的服务器集群,但我们同样有很多办法优化我们仅有的vps性能,从而降低首包时间,减少资源消耗,增大吞吐量。这篇文章针对的正是我们这些草根站长。