sqlserver占用CPU达到100%原因

CPU占用率高的原因 CPU占用率高是对物理硬盘的查询次数多;内存使用率高是物理磁盘—虚拟内存—内存三种之间数据交换次数多。 防杀毒软件造成故障或病毒、木马造成,特别是蠕虫病毒在系统内部或网络内部迅速复制,造成CPU占用资源率居高不下; 驱动没有经过认证或某些软件与系统不兼容,造成CPU资源占用100%; 服务器硬件问题:磁盘、内存/虚拟内存等等; 网络问题:网络带宽被大量占用,造成可用带宽较少,从而影响速度; 数据库设计的问题:触发器造成死锁、作业多且频繁、中间表的大量使用、游标的大量使用、索引的设计不合理、事务操作频繁; SQL语句设计不合理,造成查询效率低下、影响服务器性能的发挥; 二 CPU占用率高解决方法 针对上述原因及可能,有以下处理: 杀毒软件升级,对服务器系统和所在的局域网进行全面、严格的杀毒; 对服务器上已经安装的软件进行考证、整理,不装没有认证的驱动、尽量装兼容性强的必需软件、去掉不必需的软件;对服务器系统、端口进行监控,定时清理系统垃圾文件、关闭不使用和高危险端口; 定期周期性检查服务器硬件问题、整理系统磁盘,使服务器性能得到最大程度发挥;制定《电脑使用规范》,规范中明确使用范围和禁止范围,并依据规范定期查询各个部门的电脑使用情况;对网络结构、交换机定期检查、维护和调整;升级硬件; 使用sql server自带的性能分析追踪工具sql profiler分析数据库设计所产生问题的来源,进行有针对性处理; 使用sql server自带的查询性能分析工具sql query analyzer对可能影响性能且使用频繁的查询语句进行优化; 或升级sql server;重装sql server或服务器操作系统;使用cpu降温软件等辅助软件。         如果这些还解决不了问题的话,那就比较麻烦,需要专业人士对网站进行整体优化,更改错误不合理的程序,优化后cpu占用能降至百分之十左右   from url:http://www.e-digitalwave.com/faqview.asp?id=140

龙生   25 Apr 2012
View Details

win2003 sqlserver cpu 100%

郁闷,过年放假回来第二天,公司服务器scsi硬盘放屁啦,幸好数据库和图片昨天都备过份,但恢复的东东也让我头疼啊iis,sqlserver,生成100w的静态页,静态页我没备,55555555555   现上北京买个块硬盘来,原来系统是windows2000,手到也没有2000啦,从网上当了个win2003就装上啦,本以为会好用点,结果出了 很多小问题,我改,最头痛的问题让我遇上啦 cpu占用率100%,网站根本就打不开啦,恢复的前几天一直正常,过了10来天突然出现这个问题,把IIS站建了几个缓冲池,设置过期时间,不管用,重 建索引不用,sqlserver分给他1g多内存一开机就吃没啦,重起N便系统不管用,在网上搜了半天,也没什么实质性的解决方法,最后终于让我搜着一个 解决方法目前还管用   @echo off echo 正在清除服务器垃圾文件,请稍等…… del /f /s /q %systemdrive%/*.tmp del /f /s /q %systemdrive%/*._mp del /f /s /q %systemdrive%/*.log del /f /s /q %systemdrive%/*.gid del /f /s /q %systemdrive%/*.chk del /f /s /q %systemdrive%/*.old del /f /s /q %systemdrive%/recycled/*.* del /f /s /q %windir%/*.bak del /f /s /q %windir%/prefetch/*.* rd /s /q %windir%/temp & md %windir%/temp del /f /q %userprofile%/cookies/*.* del /f /q %userprofile%/recent/*.* del /f /s /q "%userprofile%/Local Settings/Temporary Internet Files/*.*" del /f /s /q "%userprofile%/Local Settings/Temp/*.*" del /f […]

龙生   25 Apr 2012
View Details

windows 2003服务器优化设置

一、优化启动设置     1.禁用关机事件跟踪开始-运行-gpedit.msc-计算机配置-管理模板-系统-显示关机事件跟踪-禁用。     2. 禁用开机 CTRL+ALT+DEL和实现自动登陆方法1:打开注册表:HKEY_LOCAL_MACHIN|SOFTWARE|MicroSoft|Windows NT|CurrentVersion |Winlogon段,在此项按右键,新建二个字符串值,AutoAdminLogon=1, DefaultPassword=“为超级用户Administrator所设置的Password”。 注意,一定要为Administrator设置一个密码,否则不能实现自启动。 然后,重新启?疻indows即可实现自动登录。 方法2:管理工具-本地安全策略-本地策略-安全选项-interactive logon: Do not require CTRL+ALT+DEL,启用之。 方法3(自动登陆):使用Windows XP的Tweak UI来实现Server 2003自动登陆。下载weak UI http://www.ssite.org/uppic/sun_pic/…003/tweakui.exe下载后直接执行weakui.exe 在左边的面板中选择Logon-Autologon-在右边勾写),点击下面set Password,输入用户名的密码,然后点击OK。  3.我的电脑-属性-高级-启动和故障修复,点错误报告,选择“禁用错误汇报、但在发生严重错误时通知我”;     4.去掉将事件写入系统日志、发送管理警报、自动重新启动等选项,将写入调试信息设置为无;     5.点击编辑,在弹出记事本文件中:   [Operating Systems]   timeout=30 //把缺省时间 30 秒改为 0 秒   multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows server 2003rofessional" /fastdetect //把缺省 fastdetect 改为 nodetect   二、关闭华医生Dr.Watson   在开始-运行中输入“drwtsn32”,或者开始-程序-附件-系统工具-系统信息-工具-Dr Watson,调出系统里的华医生Dr.Watson ,只保留“转储全部线程上下文”选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。如果以前有此情况,请查找user.dmp文件,删除后可节省几十MB空间。 三、用SFC命令释放更多空间   若确认系统不会新加设备,可把\windows\system\dellcache目录内的文件予以删除,以释放空间。  删除全部文件的命令是sfc.exe/purgecache,约300MB,本操作有危险性,对系统不熟悉者勿用。 四、视觉效果   1.我的电脑-属性-高级-性能-设置-视觉效果,选择“调整为最佳性能”;     2.我的电脑-属性-高级-性能-设置-高级,在处理器计划选择程序,内存使用选程序,这样系统会给前台程序更多资源,使之运行更快;      3.虚拟内存中点更改,256M以下内存将虚拟内存值设为物理内存的1.5倍,将初始大小和最大值设为一样,将虚拟内存设置在系统盘外。比如你的内存是256M,你可以设置为384,操作系统安装在C盘,设置内存在E盘或F盘,先点C,再点无分页文件,然后点设置,接着点E,自定义大小,更改后点“设置”才能生效。   4.打开注册表,HKEY_CURRENT_USER\Control Panel\Desktop分支,在右边窗口双击键值名MenuShowDelay,这一项的取值范围是0~100000(单位为毫秒),将默认的值改为0。 五、删除一些可不用的东西   1.删除驱动器备份   \windows\Driver cache\i386下的Driver.cab文件,约70MB。   2.删除帮助文件   \Windows\Help下,约40MB   3.删除备用DLL文件   \Windows\System32\Dllcache,约200MB.最好有安装光盘或安装文件备份,以备用。   4.删除不用的输入法   Windows\Ime,如日文,韩文,繁体中文输入法。     5.将C:\windows\temp中的文件全部删除。 六、关闭部分功能   1.关闭系统还原功能   我的电脑-属性-系统还原,选在所有的驱动器上关闭系统还原。也可关闭不重要的分区的系统还原,如果考虑系统安全,则不要关闭还原功能。   2.关闭自动更新   我的电脑-属性-自动更新,选择关闭自动更新,我将手动更新计算机。   3.关闭远程桌面   我的电脑-属性-远程,远程桌面里的允许用户远程连接到这台计算机勾去掉。   4.取消休眠功能   右键桌面-属性-屏幕保护程序-电源-休眠,将启用休眠前的勾去掉,约200MB。 七、其它优化设置   1. 将我的文档转到其他分区  在桌面的“我的文档”图标上右击鼠标,选择属性-移动,目标为F:\我的文档。    2. 将IE临时文件夹转到其他分区。    3.在任务栏中点击鼠标右键,选择属性,任务栏标签中去掉分组相似任务栏按钮前的勾。    4查看驱动器组件信息  右键我的电脑-管理存储-可移动存储-库,用右键点击所要查询的驱动器-属性-设备信息就可看到驱动器的信息了,将多余的用户名删除。    八、设置硬盘工作模式  我的电脑-属性-硬件-设备管理器-IDE […]

龙生   23 Apr 2012
View Details

让局域网内的XP访问win7共享文件的简易方法

局域网共享的四个因素: 一、用户权限 二、安全设置 三、同一网段(也就是同一网关) 四、必须在同一个工作组。 家里两台电脑,一台装XP,一台装win7,路由器局域网连接,以前一直是将两台机子改一致的工作组名称其它按默认,win7就能访问xp上的共享文件,但XP却不能访问win7。 查找原因发现win7默认Guest(来宾账号)是禁止的,需要手动打开: *开启Guest账号:右击我的电脑\管理\用户有个Guest,双击之去掉“账户已停用”前面的勾。 *删除“拒绝从网络上访问这台计算机”项中的guest账户:运行组策略(gpedit.msc)\本地计算机\计算机配置\windows设置\安全设置\本地策略\用户权利指派\拒绝从网络访问这台计算机。选中guest,则将其删除。(win7默认guest是不允许访问共享的) *禁用“帐户:使用空白密码的本地帐户只允许进行控制台登录” 注:有些杀毒软件的更新也会禁用来宾账号,遇到这种情况,除了查看以上的三点操作,还要: *运行服务策略“Services.msc”。启动其中的“Clipbook Server”(文件夹服务器):这个服务允许你们网络上的其他用户看到你的文件夹。当然有时你可把它改为手动启动,然后再使用其他程序在你的网络上发布信息。 <div class=’XbU3HE6′>一起讨论PHP最新技术教程学习等为主的源代码开发技术网站div> *如果无法启动Clipbook服务。错误1068:依存服务或组无法启动。需要这样的步骤(你可以看他们的依存关系):首先开启 Network DDE DSDM (如果已开启,进入第二步),其次开启 Network DDE,然后开启 Clipbook。 最后,设置win7文件共享,将需要共享的文件夹添加Guest(来宾账号)权限即可。\拒绝从网络访问这台计算机。选中guest,则将其删除。(win7默认guest是不允许访问共享的) *禁用“帐户:使用空白密码的本地帐户只允许进行控制台登录” 注:有些杀毒软件的更新也会禁用来宾账号,遇到这种情况,除了查看以上的三点操作,还要: *运行服务策略“Services.msc”。启动其中的“Clipbook Server”(文件夹服务器):这个服务允许你们网络上的其他用户看到你的文件夹。当然有时你可把它改为手动启动,然后再使用其他程序在你的网络上发布信息。 *如果无法启动Clipbook服务。错误1068:依存服务或组无法启动。需要这样的步骤(你可以看他们的依存关系):首先开启 Network DDE DSDM (如果已开启,进入第二步),其次开启 Network DDE,然后开启 Clipbook。 最后,设置win7文件共享,将需要共享的文件夹添加Guest(来宾账号)权限即可。 局域网共享的四个因素: 一、用户权限 二、安全设置 三、同一网段(也就是你们的网关) 四、必须在同一个工作组。 我下午也是因为一次杀毒软件的更新导致win7机子莫名不能访问xp的里共享文件夹。 <div class=’XbU3HE6′><发表于php中国 http://www.phpcn.cc/ >div> 按以下几条去检查应该能解决,我已解决: 1. 安装NWlink IPX/SPX/NetBIOS Compatible Transport Protocol协议。(如没安装就安装一下吧) 2. 开启Guest账号:右击我的电脑\管理\用户有个Guest,双击之去掉“账户已停用”前面的勾。 3. 右击我的电脑\属性\计算机名,查看该选项卡中出现的局域网工作组名称名称一致 4. 使用winxp防火墙的例外:winxp防火墙在默认状态下是全面启用的,这意味着运行计算机的所有网络连接,难于实现网上邻居共享。同时,由于windows防火墙默认状态下是禁止“文件与打印机共享的”,所以,启用了防火墙,往往不能共享打印,解决办法是:进入“本地连接”窗口,点“高级”\“设置”\“例外”\在程序与服务下勾选“文件和打印机共享”。 5. 删除“拒绝从网络上访问这台计算机”项中的guest账户:运行组策略(gpedit.msc)\本地计算机\计算机配置\windows设置\安全设置\本地策略\用户权利指派\拒绝从网络访问这台计算机。如果其中有guest,则将其删除。(原因是:有时xp的guest是不允许访问共享的) 禁用“帐户:使用空白密码的本地帐户只允许进行控制台登录” 6. 取消“使用简单文件共享”方式:资源管理器\工具 --文件夹选项FONT face=Times New Roman>\查看\去掉“使用简单文件共享(推荐)”前面的勾。 一起讨论PHP最新技术教程学习等为主的源代码开发技术网站 7. 检查注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa右边窗口RestrictAnonymous的值是否为0。(默认是0,你可跳过去。如果不行在回到这里;如没有这一项,不管它。) 8. 勾选“本地连接\属性\Microsoft网络的文件和打印机共享”。 9. 运行服务策略“Services.msc”。启动其中的“Clipbook Server”(文件夹服务器):这个服务允许你们网络上的其他用户看到你的文件夹。当然有时你可把它改为手动启动,然后再使用其他程序在你的网络上发布信息。 10. 无法启动Clipbook服务。错误1068:依存服务或组无法启动。需要这样的步骤(你可以看他们的依存关系):首先开启 Network DDE DSDM (如果已开启,进入第二步),其次开启 Network DDE,然后开启 Clipbook。 win7和xp都按以上10条去检查一遍,基本上满足了前面说的四项共享因素条件。 我期初用IP地址可以打开其它机子的共享,点网络里的机子图标无法访问;然后来用了IPBook(超级网络邻居)工具,不觉中就好了。 […]

龙生   23 Apr 2012
View Details

.net连接MYSQL字符串

<add key="MySqlString" value="server=localhost;port=3306;user id=userid;password=123456;database=dbname;CharSet=utf8;Allow Zero Datetime=true"/>

龙生   22 Apr 2012
View Details

C# Socket实例

public string Hello{     Response.Write("test");     Response.End9() } 客户端:2 1 using System; 2 using System.Net; 3 using System.Net.Sockets; 4 using System.Text; 5 6 public class SynchronousSocketClient { 7 8     public static void StartClient() { 9         // Data buffer for incoming data. 10         byte[] bytes = new byte[1024]; 11 12         // Connect to a remote device. 13         try { 14             // Establish the remote endpoint for the socket. 15             // This example uses port 11000 on the local computer. 16             IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()) 17             IPAddress ipAddress = ipHostInfo.AddressList[0]; 18             IPEndPoint remoteEP = […]

龙生   21 Apr 2012
View Details

c#进制转换

/// <summary>/// 十进制转换为二进制/// </summary>/// <param name="x"></param>/// <returns></returns> public static string DecToBin(string x){string z = null;int X = Convert.ToInt32(x);int i = 0;long a, b = 0;while (X > 0){a = X%2;X = X/2;b = b + a*Pow(10, i);i++;}z = Convert.ToString(b);return z;} /// <summary>/// 16进制转ASCII码/// </summary>/// <param name="hexString"></param>/// <returns></returns> public static string HexToAscii(string hexString){StringBuilder sb = new StringBuilder();for (int i = 0; i <= hexString.Length – 2; i += 2){sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hexString.Substring(i, 2),System.Globalization.NumberStyles.HexNumber))));}return sb.ToString();} /// <summary>/// 十进制转换为八进制/// </summary>/// <param name="x"></param>/// <returns></returns> public static string DecToOtc(string x){string z = null;int X = Convert.ToInt32(x);int […]

龙生   21 Apr 2012
View Details

深入探析c# Socket

  最近浏览了几篇有关Socket发送消息的文章,发现大家对Socket Send方法理解有所偏差,现将自己在开发过程中对Socket的领悟写出来,以供大家参考。   (一)架构   基于TCP协议的Socket通信,架构类似于B/S架构,一个Socket通信服务器,多个Socket通信客户端。Socket通信服务器启动时,会建立一个侦听Socket,侦听Socket将侦听到的Socket连接传给接受Socket,然后由接受Socket完成接受、发送消息,当Socket存在异常时,断开连接。在实际开发项目中,往往要求Socket通信服务器能提供高效、稳定的服务,一般会用到以下技术:双工通信、完成端口、SAEA、池、多线程、异步等。特别是池,用的比较多,池一般包括一下几种: 1)Buffer池,用于集中管控Socket缓冲区,防止内存碎片。 2)SAEA池,用于集中管控Socket,重复利用Socket。 3)SQL池,用于分离网络服务层与数据访问层(SQL的执行效率远远低于网络层执行效率)。 4)线程池,用于从线程池中调用空闲线程执行业务逻辑,进一步提高网络层运行效率。   (二)Send   主服务器接受Socket为一端口,客户端Socket为一端口,这两个端口通过TCP协议建立连接,通信基础系统负责管理此连接,它有两个功能:   1)发送消息   2)接受消息   Socket的Send方法,并非大家想象中的从一个端口发送消息到另一个端口,它仅仅是拷贝数据到基础系统的发送缓冲区,然后由基础系统将发送缓冲区的数据到连接的另一端口。值得一说的是,这里的拷贝数据与异步发送消息的拷贝是不一样的,同步发送的拷贝,是直接拷贝数据到基础系统缓冲区,拷贝完成后返回,在拷贝的过程中,执行线程会IO等待, 此种拷贝与Socket自带的Buffer空间无关,但异步发送消息的拷贝,是将Socket自带的Buffer空间内的所有数据,拷贝到基础系统发送缓冲区,并立即返回,执行线程无需IO等待,所以异步发送在发送前必须执行SetBuffer方法,拷贝完成后,会触发你自定义回调函数ProcessSend,在ProcessSend方法中,调用SetBuffer方法,重新初始化Buffer空间。       口说无凭,下面给个例子:   服务器端: 客户端: 解释:   客户端第一次发送数据:1234567890。 客户端第一个接受数据:1234567890,该数据由服务端用Send同步方法发送返回。 客户端第二个接受数据:1234567890,该数据由服务端用Send异步方法发送返回。   以上似乎没什么异常,好,接下来,我只发送abc。 客户端第一个接受数据:abc,理所当然,没什么问题。 客户端第二个接受数据:abc4567890!为什么呢?应该是abc才对呀!   好,现在为大家解释一下: 异步发送是将其Buffer空间中所有数据拷贝到基础系统发送缓冲区,第一次拷贝1234567890到发送缓冲区,所以收到1234567890,第二次拷贝abc到发送缓冲区,替换了先前的123,所以收到abc4567890,大家明白的?   源码:     BufferManager

      SocketAsyncEventArgsPool

     

      Server

        Program

http://www.cnblogs.com/tianzhiliang/archive/2010/09/08/1821623.html

龙生   21 Apr 2012
View Details

C#的Socket程序(TCP)

其实只要用到Socket联接,基本上就得使用Thread,是交叉使用的。C#封装的Socket用法基本上不算很复杂,只是不知道托管之后的Socket有没有其他性能或者安全上的问题。在C#里面能找到的最底层的操作也就是socket了,概念不做解释。程序模型如下:WinForm程序 : 启动端口侦听;监视Socket联接情况;定期关闭不活动的联接;Listener:处理Socket的Accept函数,侦听新链接,建立新Thread来处理这些联接(Connection)。Connection:处理具体的每一个联接的会话。 1:WinForm如何启动一个新的线程来启动Listener://start the serverprivate void btn_startServer_Click(object sender, EventArgs e){//this.btn_startServer.Enabled = false;Thread _createServer = new Thread(new ThreadStart(WaitForConnect));_createServer.Start();}//wait all connectionsprivate void WaitForConnect(){SocketListener listener = new SocketListener(Convert.ToInt32(this.txt_port.Text));listener.StartListening();}因为侦听联接是一个循环等待的函数,所以不可能在WinForm的线程里面直接执行,不然Winform也就是无法继续任何操作了,所以才指定一个新的线程来执行这个函数,启动侦听循环。这一个新的线程是比较简单的,基本上没有启动的参数,直接指定处理函数就可以了。2:Listener如何启动循环侦听,并且启动新的带有参数的线程来处理Socket联接会话。先看如何建立侦听:(StartListening函数)IPEndPoint localEndPoint = new IPEndPoint(_ipAddress, _port);// Create a TCP/IP socket. Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);// Bind the socket to the local endpoint and listen for incoming connections. try{listener.Bind(localEndPoint);listener.Listen(20);//20 trucks // Start listening for connections. while (true){// here will be suspended while waiting for a new connection. Socket connection = listener.Accept();Logger.Log("Connect", connection.RemoteEndPoint.ToString());//log it, new connection……}}……基本步骤比较简单:建立本机的IPEndPoint对象,表示以本机为服务器,在指定端口侦听;然后绑定到一个侦听Socket上;进入while循环,等待新的联接;如果有新的联接,那么建立新的socket来对应这个联接的会话。值得注意的就是这一句联接代码:listener.Accept()。执行这一句的时候,程序就在这个地方等待,直到有新的联检请求的时候程序才会执行下一句。这是同步执行,当然也可以异步执行。 新的联接Socket建立了(Accept之后),对于这些新的socket该怎么办呢?他们依然是一个循环等待,所以依然需要建立新的Thread给这些Socket去处理会话(接收/发送消息),而这个Thread就要接收参数了。Thread本身是不能接收参数的,为了让它可以接收参数,可以采用定义新类,添加参数作为属性的方法来解决。因为每一个Socket是一个Connection周期,所以我定义了这么一个类public class Connection。这个类至少有这样一个构造函数public Connection(Socket socket); 之所以这么做,就是为了把Socket参数传给这个Connection对象,然后好让Listener启动这个Thread的时候,Thread可以知道他正在处理哪一个Socket。具体处理的方法:(在Listener的StartListening函数,ocket connection […]

龙生   21 Apr 2012
View Details
1 405 406 407 432