紧急求助,win3003 pf占有率太大

dxl6199 2009-05-22 09:27:14
win2003 server x64 +sql server2005,开机一天后系统,任务管理器中的pf使用率高达7个多G,系统内存是8G,c盘虚拟内存是2G-4G,数据库在D盘,D盘没有设置虚拟内存,7个多G后,客户端机器在向数据库写东西的时候非常慢,重新启动服务器后pf会下降,但是一天后会增加到7个多G,瑞星杀毒后没毒,如何解决啊????
...全文
219 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyuanwei123 2012-10-13
  • 打赏
  • 举报
回复
我也遇到这个情况,不知道怎么解决
dxl6199 2009-05-24
  • 打赏
  • 举报
回复
个人认为最有两种情况可能:
1.数据库查询中没用真分页,将大数据表加载到了内存
2.客户端打开的连接没关闭


如何启用真分页?如何在客户端程序不用的时候断开连接,客户端是cs程序
dxl6199 2009-05-24
  • 打赏
  • 举报
回复
个人认为最有两种情况可能:
1.数据库查询中没用真分页,将大数据表加载到了内存
2.客户端打开的连接没关闭



现在内存已经设置了6G,但是发现有大数据量访问的时候,任务管理器cpu性能占用率高达50%-60%,经查看sql-server中部分客户端程序,cpu占用高达30多万,所有的程序都卡在一个存储过程上,有办法消除吗
nzperfect 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dxl6199 的回复:]
select cntr_value*1.0/(1024*1024) from master.sys.dm_os_performance_counters  where counter_name like '%total%memory%'
贴出返回值.
这段语句是什么意思
5.859375000000
[/Quote]
是sql server 占用的总内存.

sql server默认情况下会不断申请内存,而不会主动释放,其目的是为了高速缓存数据,以提高sql server性能.
你的内存是8G,sql缓存数据5.85G,属正常情况.

如果不想让sql占用这么多内存,可以使用:
use master
go
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'max server memory', 3072 --这是3G,修改这里大小.
RECONFIGURE
GO

需要重启sql服务.
dxl6199 2009-05-22
  • 打赏
  • 举报
回复
select cntr_value*1.0/(1024*1024) from master.sys.dm_os_performance_counters where counter_name like '%total%memory%'
贴出返回值.

这段语句是什么意思


5.859375000000
dxl6199 2009-05-22
  • 打赏
  • 举报
回复
SQL Server 会自动根据你系统内存的多少申请使用内存的大小的
一般都会少于系统最大内存一些,例如2G内存就会用到1.8-1.9左右(我的系统)
目的是尽可能多地缓存数据以提高性能,可以通过设置限制内存使用量降低
缓存情度的.



限制sql server服务器是在服务器熟悉里面设置吗
ai_li7758521 2009-05-22
  • 打赏
  • 举报
回复
个人认为最有两种情况可能:
1.数据库查询中没用真分页,将大数据表加载到了内存
2.客户端打开的连接没关闭。
menggang9801 2009-05-22
  • 打赏
  • 举报
回复
1.首先看看是哪个进程占用过多内存。
2.如果是SQL Server,先设定最大内存配置看看有没有效果。
3.如果2无效,那么就要dump进程分析了,嘿嘿。
等待戈多12 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 allanli 的回复:]
SQL Server 会自动根据你系统内存的多少申请使用内存的大小的
一般都会少于系统最大内存一些,例如2G内存就会用到1.8-1.9左右(我的系统)
目的是尽可能多地缓存数据以提高性能,可以通过设置限制内存使用量降低
缓存情度的.
[/Quote]
建议试试这个
allanli 2009-05-22
  • 打赏
  • 举报
回复
SQL Server 会自动根据你系统内存的多少申请使用内存的大小的
一般都会少于系统最大内存一些,例如2G内存就会用到1.8-1.9左右(我的系统)
目的是尽可能多地缓存数据以提高性能,可以通过设置限制内存使用量降低
缓存情度的.
nzperfect 2009-05-22
  • 打赏
  • 举报
回复
在sql里执行:
select cntr_value*1.0/(1024*1024) from master.sys.dm_os_performance_counters where counter_name like '%total%memory%'
贴出返回值.
dj3688 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ks_reny 的回复:]
引用 2 楼 knifewei 的回复:
原因很多,猜测是不是连接数据库的语句用完后没有关闭,或者是连接数据库的人太多,
或者连接数据库的语句有死循环的,

同意,用sp_lock 看一下有沒有死鎖.
[/Quote]

up~~
ks_reny 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 knifewei 的回复:]
原因很多,猜测是不是连接数据库的语句用完后没有关闭,或者是连接数据库的人太多,
或者连接数据库的语句有死循环的,
[/Quote]
同意,用sp_lock 看一下有沒有死鎖.
Q315054403 2009-05-22
  • 打赏
  • 举报
回复
跟偶公司环境一样
建议让系统自动管理虚拟内存
若还有异常,要实地或远程看状况排除问题了
knifewei 2009-05-22
  • 打赏
  • 举报
回复
原因很多,猜测是不是连接数据库的语句用完后没有关闭,或者是连接数据库的人太多,
或者连接数据库的语句有死循环的,
knifewei 2009-05-22
  • 打赏
  • 举报
回复
用任务管理器看看那些进程高的都是干什么用的,
allanli 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dxl6199 的回复:]
SQL Server 会自动根据你系统内存的多少申请使用内存的大小的
一般都会少于系统最大内存一些,例如2G内存就会用到1.8-1.9左右(我的系统)
目的是尽可能多地缓存数据以提高性能,可以通过设置限制内存使用量降低
缓存情度的.


限制sql server服务器是在服务器熟悉里面设置吗
[/Quote]

dxl6199 2009-05-22
  • 打赏
  • 举报
回复
没有死锁现象,连接数据库的人大约有40多个吧,占用内存最大的就是sqlservr了,大约150M左右

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧