又是一年春运时,每到这个时候,世界上总有一个网站会成为大家又爱又恨的焦点。它承载着满满的期待,承担着空前的责任,承受着广泛的批评,却被迫成为这个星球上瞬时访问量最高的网站,没有之一。它就是12306。2012年春运,12306高峰单日访问量达14亿。2013年春运,12306高峰每秒数据库查询量达2.6万/秒。评价12306网站是一件吃力不讨好的事情,首先对其系统架构的了解不够深入,3亿元开发的系统,说实话不是我们能够简单理解的,其次大家已经骂声一片,进行这样的技术讨论,难免有为12306开脱的嫌疑。不过最近看到有关黄牛破解12306网站限制的文章,以及各大浏览器厂商用“抢票插件”来吸引消费者的目光时,我觉得消费者对12306的理解可能已经出现了偏差,是时候写一篇文章来谈谈这件事了。本文将分两个部分,第一部分分析12306网站频频出现问题的根源。第二部分提出我对改善用户体验和售票服务的一些建议。本文权当抛砖引玉,如有偏差和错误,还请各位谅解。
Tag: 性能
WordPress建站心得(二)网站架构设计
在上一篇文章《WordPress建站心得(一)前端性能优化》中,我们提到了如何在服务器和网络状况不变的情况下,通过调整优化请求数目和顺序,缩短页面呈现时间,从而提升用户体验。不过,这种优化只是在请求之间的优化,它并不能提升每个请求的响应时间,如果需要继续优化性能,则必须从服务器和网络本身入手。 我们谈到服务器性能,主要有三个比较重要的衡量标准。一是吞吐量,表示网站在一定时间内能有效承载的请求的最大数量,也就是网站能承受多少人同时访问。二是资源消耗,表示网站在处理一定数量的请求时,所消耗的服务器资源,这和网站的成本直接挂钩。三是首包时间,表示网站返回动态(如PHP, JSP)与静态请求(如js,css,jpg)所需要的计算时间。 在这三个标准中,传统的性能优化主要集中在头两个方面,这无可厚非,因为直接涉及到网站的运营成本和覆盖范围。诚然,这三个标准其实相互作用,一个性能优良的网站,必然会有较高的吞吐量,较低的资源消耗,以及较低的首包时间。不过这并非完全正确,因为采用传统方法优化服务器架构,只能在前两方面有所进步。比如,采用web–>application–>db三层服务器集群,中间通过load balancer来动态调配,的确能极大增加吞吐量和降低单服务器资源消耗,但首包时间并不会因此而大大降低,反而会因为服务器之间的网络沟通产生延时。 回到WordPress的例子上面,相信很多站长都和我一样,没有充裕的budget,只是凭个人爱好而建站,必然没有那么多资源建设庞大的服务器集群,但我们同样有很多办法优化我们仅有的vps性能,从而降低首包时间,减少资源消耗,增大吞吐量。这篇文章针对的正是我们这些草根站长。
WordPress建站心得(一)前端性能优化
现在距离创建个人博客已过去将近五个月了,这五个月通过不断调试和优化个人博客,我学到了很多,中间虽然有挫折,不过最终都一一克服了。我发现我真是一个完美主义者,发现一丁点未优化的地方都寝食难安。通过这些折腾,让我更加了解如何架构一个网站,并让它既快速又安全。我想通过这篇和接下来的两篇文章,分享一下我的心得。虽然不一定完善,不一定适用于所有环境,但在我看来确实对提高网站的用户体验极为重要。有兴趣的朋友不妨一看,没兴趣的飘过也成。 在我看来,一个网站的价值主要体现在四个方面——功能、交互、性能、安全。只要做好这四点,做好一个网站并不难。WordPress作为目前最流行的内容管理系统,有着丰富的插件,可以快速实现多种多样的功能。同时,站长可以通过主题的方式管理和优化交互,提高用户体验。这两点在这几篇文章中暂时不会涉及。我想着重谈的是后两个方面——性能和安全。这两点也是目前许多站长所忽视的。 本篇文章的主题是前端性能优化,主要分享如何在服务器性能和网络状况不变的情况下,让网页更快地展示在用户的浏览器中。第二篇文章的主题是网站架构设计,主要分享如何通过合理配置服务器,减少资源消耗,提高网站响应速度,增大吞吐量。第三篇文章的主题是Web安全与隐私,主要分享如何防范流行的网站攻击,保护用户隐私。