使用IIS配置解决 sqlservr.exe占用内存过高

本文详细介绍了如何通过调整IIS应用程序池配置,包括设置独立的进程、调整回收时间和定时回收进程,来有效解决Win2003服务器上运行的网站因内存泄漏导致的性能下降问题。特别关注了如何针对SQL Server服务(sqlservr.exe)的高内存占用进行优化,以提升服务器整体运行效率。

提示:sqlserver.exe是木马.............

在win2003上运行的网站,几天后服务器很慢,sqlservr.exe占用内存达到200M,甚至更高,重启服务器有时会好一些。考虑是内存释放不及时严重影响到服务器的正常运行,可以采取下配置:

1、IIS中对每个网站进行单独的应用程序池配置,使相互之间不受影响。

2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。

3、设置固定时间加收进程。

............摸索中.............

注:win2003,IIS6,sql 2005



### 关于 `sqlservr.exe` 进程及其与 SQL Server 的关系 `sqlservr.exe` 是 Microsoft SQL Server 数据库管理系统的核心执行文件,负责管理数据库引擎的所有活动[^1]。此进程用于启动和停止 SQL Server 实例,并处理所有的数据库请求和服务功能。 当安装多个 SQL Server 实例时,每个实例都有独立的 `sqlservr.exe` 文件位置。例如,默认实例通常位于 `C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\binn` 路径下;而其他命名实例则可能存在于不同的子目录中,比如 `C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\binn`。 需要注意的是,使用一个实例中的 `sqlservr.exe` 来尝试启动另一个不同版本或补丁级别的 SQL Server 实例可能会导致错误的行为或者不稳定的情况发生。因此建议总是通过正确的路径来调用相应的可执行程序以确保兼容性和稳定性。 此外,`sqlservr.exe` 可能会因为缓存机制而导致较内存占用情况。这是因为为了提升查询效率,SQL Server 会在物理 RAM 中存储常用的数据页副本以及编译后的计划对象等资源。如果观察到该进程占用过多内存影响系统性能,可以通过调整配置参数限制其最大可用内存量来进行优化[^2]。 ```sql -- 设置最大服务器内存大小(单位:MB) ALTER SERVER CONFIGURATION SET MEMORY_LIMIT_MB = 2048; ``` 对于那些特别耗费 CPU 时间的 T-SQL 查询语句也可以采取措施加以改进,以此减少整体负载并改善响应时间[^4]: ```sql SELECT TOP 50 qs.total_worker_time / qs.execution_count AS [Avg CPU Time], SUBSTRING( qt.text, qs.statement_start_offset / 2, CASE WHEN qs.statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 ELSE qs.statement_end_offset END - qs.statement_start_offset) / 2 ) AS query_text, qt.dbid, DB_NAME(qt.dbid) AS dbname, qt.objectid FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt ORDER BY [Avg CPU Time] DESC; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值