摘要: 本文是自己的一个测试记录,没有其他技术开发参考价值,作为一个自己的记录。通过一台服务器去压一个webservice服务器,缓存服务器是用微软开源的sharecache,两个压力测试结果相差不大,内部是自己调整了服务端配置参数,和程序缓存和相关处理后的结果,结果如下:通过用2服务器作为客户端,压122服务器,sharecache在123 服务器。利用缓存:压力测试在200个并发下,利用政策分组缓存和政策缓存后,服务器大概有38.8QPS,235个线程,222M内存,201M虚拟内存,95%的CPU占用率。每秒插入数据库大约11.24个订单。服务端内部耗时:其中经过测试,查询一个政策都需要查询两次 阅读全文
posted @ 2012-07-08 14:35 Lawson 阅读(3195) 评论(0) 推荐(0) 编辑
摘要: 前段时间做ASP.NET网站的性能分析,用了windows性能计数来监控服务端请求状况。我用的时候常见的监控点如下:1、监视对象为Asp.net Apps v2.0....(版本)这个对象,计数器用Request/ sec,Request Total,Request In application Queue,分别可以得到请求每秒数量,请求总数,请求排队数量。2、网站连接数量也可以用Web Service对象,选中具体网站实例查看。3、监视.Net Data Provider for sqlserver对象,里面有一些可以监视本机数据库连接池大小的计数器,默认数据库连接池为100,如果一直在10 阅读全文
posted @ 2012-07-08 14:31 Lawson 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 前段时间有同事用自定义的module来拦截webservice,通过解析webservice的类试xml的对象来获取一些原始数据,但是上线后一直抛400错误,经过我的反复分析,终于发现其中问题。最终的原因是在context.Request.InputStream.Read(buffer,0,length); 和context.Request.InputStream.Position=0; 两条语句之间抛了异常会导致客户端获取服务端返回的400错误。这个错误不常见,因此我也是根据一步一步调试才发现这个问题的。module里读取context当前请求流和重新设置数据流到起始点之间出异常,导致了当前 阅读全文
posted @ 2012-07-08 14:12 Lawson 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 前端时间做性能分析,有一段时间总是没有记录到到底消耗到哪里了,最后通过反复测试,才发现是NLog记录日志太慢,于是通过NLog自己可以调整的异步写日志的方式,性能提到明显提升,配置方式如下:nlog配置节的targets标签改为<targets async="true">配置前后相差几秒的时间差,但是这也说明我们系统日志记录得太多导致的。但Log4net好像没有这样的异步写日志的配置http://lawson.cnblogs.com/ 阅读全文
posted @ 2012-07-08 14:02 Lawson 阅读(1434) 评论(0) 推荐(0) 编辑
摘要: 做压力测试或服务端请求一个特定域名时,同一时刻的连接量默认被.NET框架限制了,需要设置才能生效,我是通过windows的性能计数查看到压力测试一直没有真正提交上来,才发现这个问题,主要的设置参数为:System.Net.ServicePointManager.DefaultConnectionLimit,需要设置的相关参数如下:System.Net.ServicePointManager.DefaultConnectionLimit在windows程序时默认为2,不设置值,有可能会更大一点,但不会超过100,可以把该值设置更大,但如果设置小了,就以设置后的值为准 System.Net.Ser 阅读全文
posted @ 2012-07-08 13:41 Lawson 阅读(2239) 评论(0) 推荐(1) 编辑
摘要: 客户端Console(连接Webservice)同步:(客户端记录数据)进入方法,新增1个线程New webservice对象,新增1个线程同步调用webservice,新增2个线程(一直不消耗工作线程和IO线程,一共增加了3个线程)异步:(客户端记录数据)进入方法,新增1个线程。New webservice对象,新增1个线程异步调用webservice,新增6个线程,占用1个IO线程然后中途会消耗新增1个线程,中途可能会回收1个线程异步webservice回调,再占用1个IO线程最后回收2个IO线程(最后不占用工作线程和IO线程)(最高会占用2个IO线程,最后全部回收,一共增加了7个线程)服 阅读全文
posted @ 2012-07-08 13:18 Lawson 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 1、ASP.NET 同一时刻只能发起的工作线程数量:(maxWorkerThreads * CPU逻辑数量)-minFreeThreads比如2个CPU默认配置maxWorkerThreads=100,minFreeThreads=176,则同时最大只能有24个工作线程。(这里不管 <system.net> <connectionManagement> <add address="*" maxconnection="8" /> </connectionManagement></system.net&g 阅读全文
posted @ 2012-07-08 13:02 Lawson 阅读(1591) 评论(0) 推荐(0) 编辑