问题描述
测试客户端:开了4个进程,每个进程创建10线程去访问本地IIS网页。测试服务器A:本地IIS网页,逻辑:Sleep(200)返回直接返回。测试服务器B:本地VS程序自带IIS,逻辑同上实际测试情况1:首先打开一个测试客户端进程,使用10个线程同时访问测试服务器A和测试服务器B,测试结果相似。实际测试情况2:打开4个测试客户端进程,使用40个进程同时访问测试服务器A和B,测试结果相差4倍。查看性能监视器,发现RequestsCurrent发现当前线程的值在测试服务A时为10,测试服务器B时,为40.至此问题应该算是找到了。IIS的当前工作线程的不对等,导致了返回时间的N倍的关系。但是在<processModel/>中修改设置maxWorkerThreaders和maxIoThreads为100仍然无效.net4的32位和64位的文件下的配置文件都改了IIS也是使用.net4集成模式。现在想请问是否还有哪里要设置
解决方案
解决方案二:
解决方案三:
引用1楼starfd的回复:都看过了,但是这篇文章作者是说我不知道“IIS最大并发工作线程数”有无地方可以设置,知道的朋友可以给我留言,谢谢别的文章都说修改processModel可是实际检测的工作线程还是10,VS自带的IIS可以跑到超出80
解决方案四:
这里面有告诉你只能在Machine.config里面配置
解决方案五:
引用3楼starfd的回复:
这里面有告诉你只能在Machine.config里面配置
这里改了但是没有效果,已重启
解决方案六:
把你的实际测试结果,跟实际流程写出来。不要只写虚的东西。不要写你的猜的东西,多贴点实际的画面。
解决方案七:
引用5楼sp1234的回复:
把你的实际测试结果,跟实际流程写出来。不要只写虚的东西。不要写你的猜的东西,多贴点实际的画面。
一楼图片不是显示了么第一张图片显示,相同ID的线程的时间间隔的返回时间在0.25秒左右第二章图片显示,相同ID的线程的时间间隔的返回时间在0.83秒左右两者唯一的不同是使用的IIS不同。服务器的的逻辑只有sleep(200)两者用性能监视器可以看到当前请求是4倍的差距。
解决方案八:
两台服务器的CPU是不是不一样?是不是应该设置MinWorkerThreads
解决方案九:
连服务端操作系统、内存、IIS版本、测试的网络拓扑,之类的都看不到啊。也太随意了。