Rising Sun

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  148 随笔 :: 0 文章 :: 22 评论 :: 0 Trackbacks
操作步骤:
sudo vim /home/admin/{app}/conf/tomcat-server.xml
修改 HTTP/1.1 Connector中的maxPostSize="10000"
以及AJP 1.3 Connector中的maxPostSize="10000"
然后
sudo -u admin cp /home/admin/{app}/conf/tomcat-server.xml /home/admin/{app}/.default/deploy/jboss-web.deployer/server.xml
下来
sudo -u admin /home/admin/{app}/bin/jbossctl restart {app}
最后检查一下应用



估计看pdf的人不多, 简述一下大概意思为:
常见的服务器会将用户post的数据保存在hashmap中. 而向hashmap中插入n对元素的时间复杂度大约是O(n), 但如果精心构造key使得每个key的hash值相同(也就是产生了碰撞),则时间复杂度会恶化到O(n^2),导致消耗大量的CPU时间.
经测试,在tomcat6服务器上, 总大小2MByte的数据就需要消耗一个i7CPU core44分钟,也就是6kbit/s就可以让这个CPU core一直忙碌. 所以只要一个G兆网络就能让100000个i7CPU core一直忙.

再说下相同hash值key的构造:
在java中,字符串的hash函数采用DJBX33A,只不过常数因子改为了31. 这样的函数有个特点,即如果字符串X, Y的hash值相同,那么X,Y都添加任意相同的前缀或后缀的以后的hash值也都相同.比如: "rQ"与 "qp"的hash值相同, 则"rQrQ", "rQqp", "qprQ", "qpqp" 这四个也相同,继续这个模式就可以很容易构造出 2^n 个 2*n长度的不同字符串

posted on 2012-01-04 11:11 brock 阅读(373) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: