<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Catch Sha If You Can &#187; RAM</title>
	<atom:link href="http://www.catchsha.com/tag/ram/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.catchsha.com</link>
	<description>沙沙胡思乱想的地方</description>
	<lastBuildDate>Sun, 27 Jun 2010 04:45:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>让 SQL Sever 2000 支持 2GB 以上的物理内存</title>
		<link>http://www.catchsha.com/%e8%ae%a9-sql-sever-2000-%e6%94%af%e6%8c%81-2gb-%e4%bb%a5%e4%b8%8a%e7%9a%84%e7%89%a9%e7%90%86%e5%86%85%e5%ad%98/</link>
		<comments>http://www.catchsha.com/%e8%ae%a9-sql-sever-2000-%e6%94%af%e6%8c%81-2gb-%e4%bb%a5%e4%b8%8a%e7%9a%84%e7%89%a9%e7%90%86%e5%86%85%e5%ad%98/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 04:21:15 +0000</pubDate>
		<dc:creator>catchsha</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[RAM]]></category>

		<guid isPermaLink="false">http://www.catchsha.com/?p=380</guid>
		<description><![CDATA[服务器的物理内存占用情况比较有意思。无论我何时连上去看，物理内存占用量都在 1.5GB 至 1.75GB 左右，死活...]]></description>
			<content:encoded><![CDATA[<p>服务器的物理内存占用情况比较有意思。无论我何时连上去看，物理内存占用量都在 1.5GB 至 1.75GB 左右，死活超不过 2GB。<br />
网上有文章说只要打开 /3GB 或者 /PAE 开关就可以，这样的说法是不准确的。</p>
<p>首先我们要分析当前操作系统是什么版本，是否需要开启 /3GB 或者 /PAE 开关。具体可以参阅微软的帮助支持中心的这篇文章。我的操作系统是 Windows Server 2003 Enterprise Edition，其本身就支持最高 32 GB 的物理内存，所以不需要打开这些开关。</p>
<p>我个人的理解是：如果机器上的物理内存并未被操作系统所完全识别，则需要根据操作系统的实际情况考虑打开这些开关。</p>
<p>另外，同时使用 /3GB 和 /PAE 开关是没有意义的。物理内存为 3GB 的时候使用 /3GB 开关，大于等于 4GB 就使用 /PAE 开关。关于 /3GB 开关的描述请见这里，关于 /PAE 开关的描述请见这里。</p>
<p>一个需要开启 /PAE 开关的 boot.ini 的实例类似是这样的：</p>
<p>[boot loader]<br />
timeout=30<br />
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT<br />
[operating systems]<br />
multi(0)disk(0)rdisk(0)partition(2)\WINNT=&#8221;Windows Server 2000 Server&#8221; /noexecute=optout /fastdetect /PAE<br />
如微软的文章中所说，检查完系统是否支持当前的物理内存后，然后需要启用 SQL Server 的 Address Windowing Extentions（AWE）支持。</p>
<p>要检查 AWE 是否已启用，请从 SQL 查询分析器运行以下脚本：</p>
<p>sp_configure &#8217;show advanced options&#8217;, 1<br />
go<br />
reconfigure<br />
go<br />
sp_configure &#8216;awe enabled&#8217;<br />
go<br />
如果 run_value 设置为 1，则服务器上启用了 AWE。如果不是，请在 SQL 查询分析器中输入：</p>
<p>sp_configure &#8217;show advanced options&#8217;, 1<br />
RECONFIGURE WITH OVERRIDE<br />
GO<br />
sp_configure &#8216;awe enabled&#8217;, 1<br />
RECONFIGURE WITH OVERRIDE<br />
GO<br />
sp_configure &#8216;max server memory&#8217;, 4096<br />
RECONFIGURE WITH OVERRIDE<br />
GO<br />
请注意，这里的 4096 适用 4GB 物理内存的系统。如果是 6GB，这个数字应改成 1024 * 6，其他情况依此类推。</p>
<p>值得特别说明的是，微软的原文介绍使用 RECONFIGURE 命令，而我将之改为强制更新的 RECONFIGURE WITH OVERRIDE 命令。其最终效果是一样的，只不过有些情况下 RECONFIGURE 无法完成工作。</p>
<p>到此为止，理论上 SQL Server 应该可以支持 2GB 以上的物理内存了。但某种情况下，依然不行。为何？我们再来看微软的一篇文章。</p>
<p>这里说到这样一个问题：启用了 AWE 支持，但单个 SQL Server 2000 实例还是只能使用计算机上最多 50% 的物理内存。</p>
<p>很不幸地，这个问题被我遇到了。经过一番折腾后，服务器的内存使用量还是在 1.75GB 左右徘徊。这个属于 SQL Server 早期版本中的一个漏洞，该问题只发生在具有超过 2 GB RAM 的计算机上运行于基于 x86 或基于 x64 的计算机上的 32 位版本的 SQL Server 2000 Service Pack 4 中。要查看此现象，请检查系统监视器中的“SQL Server：内存管理器 / 总的服务器内存（KB）”计数器。在运行 SQL Server Service Pack 3（SP3）的计算机上，该值最大可以为计算机上的物理内存量。在运行 SQL Server SP4 的计算机上，该值永远不会超过物理内存的 50%。</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&#038;FamilyID=7C407047-3F1F-48B8-9E4C-DC32875E1961">下载一个 8MB 的补丁，打了就好。</a></p>
<p>这样一番折腾之后，任务管理器可能会变得无法准确提供内存使用信息，原因请见这里。</p>
<p>最后补充，无论是打开 /3GB 或 /PAE 开关，还是开启 SQL Server 的 AWE 支持，还是打 for SQL Server SP4 的修复补丁，系统必须重启才能生效。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catchsha.com/%e8%ae%a9-sql-sever-2000-%e6%94%af%e6%8c%81-2gb-%e4%bb%a5%e4%b8%8a%e7%9a%84%e7%89%a9%e7%90%86%e5%86%85%e5%ad%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.598 seconds -->
