代码改变世界

铁道部的网上订票系统的几点思考

2012-01-16 09:05 by hbqiao, 1263 阅读, 0 推荐, 收藏,
摘要:听到铁道部网上订票系统因为流量过大出了问题,周末就在思考这个问题,有点欲罢不能。 本人并没有亲手做过订票系统,所以也是即兴原创性的想法,主要是和大家讨论交流一下 (不过你可能还需要有一定的功底才能理解并参加讨论)。 首先, 做好一个售货系统并不容易。 比如, 前一阵美国HP公司宣布退出TouchPad市场, 把所有的库存以100美元出空, 引起网上的抢购。一时HP的网站连续数天濒临崩溃,刷新一次界面需要几分钟。更有甚者, 有人交了钱,购买成功, 但是其实HP的库存已经早就卖完了, HP网站的软件也犯了如此低级错误。而且不止HP一家。 本人在BarnsNoble网站上也购买成功并付了钱, 但是后 阅读全文

从Log4J 在24核服务器上引起性能问题谈起

2011-06-28 09:38 by hbqiao, 678 阅读, 0 推荐, 收藏,
摘要:服务端的Java程序运行在新的24核服务器上, 时常出现CPU突然升高, 同时处理的通量大大下降的情况, 通常持续几分钟的时间。 如果运行在4核上就没有问题。问题分析检查Window操作系统的ContextSwitch, 看到从数千每秒跳到几十万到2-3百万每秒。 基本上有了底。 通常是因为多线程锁在同一个锁上, CPU就在不断地在线程之间转换, 但是找不到可以执行的线程,大部分时间就在做无用的ContextSwitch。 这使我想起10多年前, 在Sun Unix双CPU机器上就碰到类似的问题。 当时的多线程C++程序, 每个线程不断的用malloc()/delete()进行堆处理, 在一个 阅读全文