有的网站偶尔突然占用大量cpu资源的原因和解决办法
现象是:cpu不定时的突然上升到100%,并坚持一段时间,直到Request超时后,cpu才会降下来。
经分析,出现以上现象的原因是下面两个方面:
一,用Regex.Replace等方法处理太长的字符串;
二,用System.Web.Script.Serialization名字空间中的JavaScriptSerializer处理太长的字符串。
找到了原因,解决方法就比较简单了:
1、不要用regex处理太长(比如50K)的字符串,如果必须用regex处理长字串,你可以把字符串分切为多个小段进行处理,比如每16K为一段。
2、不要用JavaScriptSerializer对长字符串或大对象进行json处理。你可以用System.Runtime.Serialization.Json进行json处理,或者用其它更高效的json编解码方案进行处理。
浙公网安备 33010602011771号