文章预览
一直就想分享一下关于.net疑难杂症相关的学习经验,这些疑难杂症主要指系统响应变慢,CPU爆高,内存爆高,系统卡死等现象。 本文分享的经验主要讲什么样的代码会导致这类现象,以及如何判断症状和修正不良代码,通过这些判断能够尽量在编写程序的时候就规避这类问题。预防的成本远低于事后分析和修正的成本。至于事后如何分析,可以去学习.net dump大神的资料。 好了,今天先分享第一篇,线程饥饿导致的系统变慢甚至请求超时(timeout问题) 线程饥饿症状 当有大量用户并发访问系统时,用户反馈系统响应缓慢甚至不可用。但经过一段时间后又可以正常使用,当再次遇到大量并发访问时,问题重现。此时如果监控服务进程CPU使用率发现,CPU使用率很低。如果出现这种症状,大概率可以判断是线程饥饿导致的。 为什么
………………………………