操作步驟:
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長度的不同字符串