Spiga

性能分析-根据进程情况自动抓取内存

2012-01-16 20:33 by Lawson, 113 visits, 网摘, 收藏, 编辑
摘要:最近我所在项目组的测试服务器的w3wp进程CPU经常接近100%,w3wp是IIS6及之后版本应用程序池的进程。肯定程序出了问题,但由于一个应用程序池可能挂接多个网站,我们的每个网站几乎都是庞大的代码量,不好定位到底哪里出了问题,并且进程可能不稳定,为了不用一直观察测试服务器w3wp是否正常,我用代码写了一个windows服务,当发现w3wp进程占用cpu达到指定值,就自动抓取对应异常时的w3wp内存dump文件并发送邮件等,方便自己能分析异常时进程的内存dump文件。一、 原理分析本篇文章是介绍在进程占用CPU情况异常时自动抓取内存文件,因此首先需要确定抓取什么进程,进程的PID是多少,然后 阅读全文

代码性能分析-Dottrace跟踪代码执行时间

2011-12-18 20:44 by Lawson, 150 visits, 网摘, 收藏, 编辑
摘要:当自己程序遇到性能问题,比如请求反应缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过长,然后再分析应该怎样解决。Dottrace是由JetBrainshttp://www.jetbrains.com/ 公司开发的一款产品,它分dottrace Performance和dottrace Memory 两个工具,dottrace Performance用来分析代码性能,比如函数执行时间,调用次数,消耗时间比率等,dottrace Memory一般用来分析内存占用情况。本篇文章介绍dottrace跟踪代码执行时 阅读全文

Remoting客户端和服务器段对象不一致的测试

2011-12-10 19:42 by Lawson, 18 visits, 网摘, 收藏, 编辑
摘要:Remoting虽然都出了好多年了,但我们项目有一部分还在用remoting,前段时间一个同事说,我的一个remoting服务端版本升级后,方法中其中一个参数是一个类对象,但这个对象新增了一些字段,但由于客户端没升级好,还用老的对象去调用,是否会有问题。经过简单测试,我发现完全没问题,可以互相调用。测试了三种情况:1、客户端的类对象比服务端少一些字段。2、客户端的类对象比服务端多一些字段。3、客户端的类对象和服务端对象不一样,命名都一样。最后证明第一、二种情况都是没问题的,第三种情况如果对象命名空间和程序集名称一样,也是没有问题的(类库没有进行任何签名)。测试工程如下:Common是公共类库和 阅读全文

对IIS7经典模式和集成模式的理解

2011-11-24 11:21 by Lawson, 53 visits, 网摘, 收藏, 编辑
摘要:从IIS6新增应用程序池的概念,到现在IIS7,对HTTP请求处理功能已经越来越精确化和不断改善,IIS7应用程序池新增了经典模式和集成模式可供选择,不管官方还是一些书籍或文章都有介绍,但多数过于官方话,下面白话一下我对经典模式和集成模式的理解,希望能对自己以后和其他人更贴切的参考。涉及IIS解析ASP.NET的生命期等知识我就简单过一下,书籍和网络介绍的都比较多,本篇文章主要讲下我对经典模式和集成模式理解的区别和应用。先直接看一个结果,再分析原因。编写一个最简单的网站,和一个最简单的HttpModule。程序结构如上,第一个ModuleIISTests是一个网站,里面包括aspx和htm文件 阅读全文

通过OAuth认证和操作新浪微博

2011-10-11 20:56 by Lawson, 257 visits, 网摘, 收藏, 编辑
摘要:前段时间看信天游http://www.travelsky.com/网站,看到中间有信天游的新浪官网微博,我最开始以为是通过OAuth读取的新浪微博,最后通过查看页面代码,才知道通过的widget读取的微博,url地址如下:http://widget.weibo.com/weiboshow/index.php?width=0&height=200&fansRow=1&ptype=1&speed=0&skin=2&isTitle=0&noborder=0&isWeibo=1&isFans=0&uid=171854691 阅读全文

MSSQL表分区的创建

2011-09-28 21:44 by Lawson, 171 visits, 网摘, 收藏, 编辑
摘要:最近在做项目数据库优化过程中,考虑了数据库表分区的方案,MSSQL2005新增了表分区的概念,现在我用测试表来做一次表分区。表分区可以把不同数据放到不同数据库文件,按物理地址来隔开数据,理论情况下如果服务器是多磁盘,多CPU,还做了磁盘阵列后,查询操作效率会更明显。现在基本所有数据库都存在表分区的概念,但MSSQL表分区一些细节又不一样,我现在也是有一定的了解,因此本篇文章不做很细的原理性质的讲解,主要讲一下MSSQL表分区的创建过程。首先创建新的数据库文件,分别放到我本机的D:\SPPartition文件夹下的FirstPart,SecondPart,ThirdPart文件夹,新建3个文件文 阅读全文

.Net中加密解密相关知识

2011-08-21 17:50 by Lawson, 191 visits, 网摘, 收藏, 编辑
摘要:最近在看我所在项目系统里支付方面的代码,里面包括很多加密解密方面的知识,结合平时对加密解密的了解,对.net里加解密做一个总结。最开始遇到加密解密,可能和大家一样,MD5加密,读大学的时候 ,我喜欢了解一些安全方面知识,当时很多小型网站都存在SQL注入,找个小工具,很轻松跑出用户帐号和密码,一看密码是16位或32位,一般都是MD5加密后没有再修改过,通过http://www.cmd5.com/ 或http://www.xmd5.org/ 等网站,直接就“解密”成原始明文了(但现在这些网站已开始收费了)。最后过了一段时间才知道,原来这个是Hash散列加密,不可逆的,这些网站都通过人工学把不同帐号 阅读全文

我在用的浏览器插件利器

2011-07-31 01:23 by Lawson, 42 visits, 网摘, 收藏, 编辑
摘要:做B/S项目,对css的动态调试,js动态调试,查看修改cookie等信息,如果借助一些优秀的浏览器插件,可以事半功倍的让技术人员分析并解决一些问题。说到浏览器插件,就必须说Firefox,它有太多支持它的插件,我想查看一下b/s请求信息等,都常常用到它。先说说我在用的有哪些插件,等会直接上图。主要用的插件有:Firebug,HttpFox,YSlow,Cookie Manager。还有其他比如fan墙时用的代理插件AutoProxy等,但我常用的那4个插件现在基本满足作为开发人员的我对b/s的一些信息查看和操作了。lFireBug:查看实时的html元素,和实时修改html内容和css非常方 阅读全文

Session-Cookie相关知识

2011-07-24 15:20 by Lawson, 170 visits, 网摘, 收藏, 编辑
摘要:其实这篇文章是1年多前整理和总结的,比较基础,但有时确实忘记了需要查看一下,留个备份。 Session,cookie是b/s中最常见的元素,除了只支持wap1.0的手机,部分不支持cookie,因此session客户端也一般存到url上,或者客户端禁止cookie,但现在一般不手工禁止cookie。下面对它们的区别做个简单的介绍,这里涉及具体配置就用.net环境下的配置介绍,不同语言思想都一样。下面简单介绍Http协议和Session,Cookie介绍和简单区别:Http协议: 服务端不能主动连接客户端,只能被动等待并答复客户端请求,浏览器无法记录客户端上次请求的状态(Request Hea. 阅读全文

.net4.0线程池取消执行的实际应用

2011-07-24 15:01 by Lawson, 165 visits, 网摘, 收藏, 编辑
摘要:2010年年初微软就正式发布了.net4.0和VS2010,不久我们有B/S项目就开始用起来了,但对一些服务端特性和新技术并没用,比如.net4.0对线程池的一些优化。.net4.0线程池新增了Cooperative Cancellation模式,它可以让线程池取消继续执行,在.net4.0以前,如果把任务交给了线程池,想要它停止下来几乎不可能,因为微软没有这样的接口,除非自己封装一个线程池,但.net框架自带的线程池执行会根据机器当前CPU、内存等综合资源来调度的,调用更方便,效果也更好。2年前,我帮测试团队写了一个小工具,帮助他们拨测网站,以前他们会找几个测试人员每天把网站的每个链接都点一 阅读全文

Sqlserver别太信任SysComments表中的text字段

2011-05-30 16:00 by Lawson, 118 visits, 网摘, 收藏, 编辑
摘要:1、用SysComments的原因最近新模块的开发,需要更改和新增的存储过程比较多,为了同步开发环境和测试环境的存储过程,能在更新程序后,马上能整理出更改的存储过程脚本,并更新到测试DB服务器上,我用了SqlServer的系统表SysComments,它记录了数据库中所有的对象,当然包括了存储过程,该表有个text字段,它记录了sql定义的脚本内容,如果是存储过程,则记录的存储过程脚本。用它,可以写批量sql语句,直接帮助同步存储过程到测试数据库,因为为了和以后生成环境更新方式一致,需要整理出脚本,因此采用了sql语句获取存储过程内容的方式。2、遇到问题在获取存储过程脚本中,遇到了问题,就是更 阅读全文

分布式缓存Memcached

2011-04-24 22:06 by Lawson, 221 visits, 网摘, 收藏, 编辑
摘要:Memcached是LiveJournal(http://www.livejournal.com/)旗下的Danga Interactive(http://www.danga.com/)公司开发的一款高效的分布式内存缓存服务器,它是一个开源的项目,既支持Linux,Mac os等系统,还支持windows系统。在Memcached项目官网上,http://memcached.org/,可以看到他现在的用户列表,Wikipedia(http://www.wikipedia.org/),Twitter(http://www.twitter.com/),Youtube(http://www.yout 阅读全文

Amadeus

2011-04-09 23:54 by Lawson, 81 visits, 网摘, 收藏, 编辑
摘要:最近工作和全球分销系统GDS有关,需要多学习这方面的业务知识,下面不是自己的理解,是根据相关资料介绍Amadeus相关信息,希望以后能多熟悉了,对整个全球分销系统有个比较细致的了解,再写更多自己总结的文章。Amadeus是目前世界上最主要一家全球分销系统(GDS)和旅游运输业的技术供应商,它为全球的旅游运输业提供市场营销、分销和其它技术方案。艾玛迪斯公司目前在全球的200多个市场运作。Amadeus在200多个市场上提供服务,多于任何其它一家全球分销系统,其遍布全球的当地国家市场公司由强大的全球性公司提供集中的支持。这种协同合作的途径予艾玛迪斯以特有的能力在全球范围内应用其特殊的知识。Amad 阅读全文

在Linux(RHEL5.5)里用mono2.8.2和jexus4.1运行.net3.5下的MVC2.0过程记录

2011-02-11 22:12 by Lawson, 177 visits, 网摘, 收藏, 编辑
摘要:本篇文章做个记录,从安装Mono到运行好.net程序,到安装好jexus,配置并且运行起windows下面基于.net3.5开发的mvc2.0程序的过程。但不同linux系统,方法可能会有不一样,仅供参考。之前我用虚拟机装的RHEL4.8版,装好mono后,运行.net程序总是报错,根据错误提示,安装libgdiplus组件老是不成功,最后安装好yum客户端,却还是有各种错误,最后我重新装了RHEL5.5的linux版本,用yum才装好很多需要的组件。Linux系统安装好后,安装mono2.8.2,分别提示需要安装gcc,g++环境,可以直接下载相应的rpm包自己安装,但rpm包有依赖关系,很 阅读全文

我的.net程序在linux上运行起啦

2011-02-10 23:21 by Lawson, 107 visits, 网摘, 收藏, 编辑
摘要:年前开始在看mono方面的资料,希望能把自己开发的和公司开发的winform和mvc的web程序部署上去,即使不实际应用,但先测试下性能吧。今天晚上终于弄好了,把我以前的.net3.5下面程序在我虚拟机装的RHEL5.5里运行起了,linux里装的Mono2.8.2,目前的最新版本。下面弄一个截图,我在Linux下面运行以前写的网站监控程序的界面:现在大体看了下,mono支持得还比较好,听说mono2.8.2已经支持.net4.0的特性了,wcf也都支持,以后会实施部署.net4.0下的mvc网站和wcf试试。 阅读全文