负载均衡是企业中重要的高并发解决方案之一,可以提高系统的并发度和可用性,减少用户等待时间,提高系统处理能力。负载均衡根据计算机网络七层模型进行分类,包括二层、三层、四层和七层。四层负载均衡是最常用的,具有高性能和低成本的优点。七层负载均衡是最灵活的,常用的实现方式有Nginx和HAProxy。负载均衡还涉及负载均衡算法和高可用等方面的知识。
本文介绍了一次程序卡死的故障排查过程,通过使用Windbg工具分析程序,发现是SQL查询导致的问题。通过观察所有线程栈,发现有两个线程在请求SQLSERVER,并在等待返回结果。进一步提取其中一个线程的SqlCommand对象,发现SQL语句没有加nolock导致在SQLSERVER层面一直获取不到S锁。通过观察SQL的请求时间,发现这条SQL已经等待了1分43秒,需要在SQLSERVER端查看锁相关的DMV视图,加上nolock尝试解决问题。最终朋友在SQLSERVER层面修改了max degree of parallelism来提高并发度,问题得到缓解。
完成下面两步后,将自动完成登录并继续当前操作。