在服务器巡视时,突然发现Exchange2007 服务器,8G内存用了7.99G,顿时一阵冷汗。内存过高,会死机的。对于服务器,可能有不可预知的后果。但是又纳闷:这么高的内存占用,在IE访问或outlook客户端,应该有变慢或丢文件的现象,可是事实 上没有。

      不管怎样,先提升性能。鉴于windows2008 64位可以支持大内存。 于是把1G的内存买了4条,这下12G了。装上后,两天后观测,居然用了11.7G,其中store.exe占用7.9G,还会变化。这下,满腹疑惑,莫非病毒?可是该服务器自带symantec防病毒软件,应该不会吧。赶紧搜索。把有用的搜索结果整理如下,以供参考:

   微软论坛上有相关问题http://social.microsoft.com/Forums/fr-FR/exchangeserverzhchs/thread/cd280271-dc35-419f-9bec-5162e75d6509   

 
  
  1. 回复1:  
  2.     exchange本身就是一个比较消耗内存的软件,与多个因素有关。您可以参考微软文档进行适合您公司的内存的配置。规划内存配置 http://technet.microsoft.com/zh-cn/library/bb738124.aspx 但内存2G的话肯定不够。  
  3. 回复2:  
  4.     这是正常的,Exchange有多少内存就是用多少,即使你是用100g,它也能占用到90几g。拿内存当硬盘用,这样有助于快速读取数据。不过对于你的配置,内存是少了点,最低的话最好是4G。 



  有一博客写得更加具体:http://blog.163.com/mapingtao@126/blog/static/82837017201043023156372/ 引用如下:

 
  
  1. exchange 2007内存占用过高。我这边在客户新安装的Exchange 2007系统,2个4核2.33的CPU, 12G 内存,一共10-15个用户邮箱,用户邮箱数据库5G,公共文件夹存储数据库10G;  
  2. 在没有用户访问的情况下,内存使用率还经常100%以上,Store占用内存9G以上,系统内存使用率经常大于物理内存;请问这样的情况是否正常?关于Exchange 2007的内存占用能否定义%率?请给一些性能优化或硬件配置的建议?  
  3.  
  4. 回答:根据您的描述,我对这个问题的理解是:您对您客户Exchange 2007系统的内存使用率有些疑问。  
  5. 首先,感谢Test提供的信息。周工,您可以参考Test提供的文档。  
  6. 关于使用内存的问题:您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404551/  
  7.  
  8. 由于默认情况下没有设置数据库缓存的最大大小,因此 ESE 可以将数据库缓存的大小增加到使用服务器上的几乎所有可用的 RAM(如果有足够的数据库 I/O 压力证明这个增加是正当的)。如果其他应用程序或 Windows Server 系统缓存请求或需要内存,则 ESE 根据需要减小数据库缓存的大小。所以Store占用内存9G以上是有可能的。如果其他程序要使用内存,Store会释放内存,应该不会影响其他程序。  
  9.  
  10. 如果您要设定ESE 数据库缓存大小,请参考下文(test提供):  
  11.  
  12. Exchange 2007 中的 ESE 数据库缓存大小  
  13. http://technet.microsoft.com/zh-cn/library/bb691304.aspx   
  14.  
  15. 您还可以参考下文(test提供)了解一般Exchange服务器建议的内存配置:  
  16.  
  17. 规划内存配置您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404551/  
  18. http://technet.microsoft.com/zh-cn/library/bb738124(EXCHG.80).aspx   
  19.  
  20. 我理解您已经对Exchange 2007 内存使用率的问题有了了解。  
  21.  
  22. 关于新的问题,Exchange 2007 的确不建议安装的GC服务器上。一般情况下,KB 940845的方法是有效的。可是如果您将Exchange 2007安装在Windows 2008上的话,由于Windows 2008与Windows 2003有很多不同,940845会不起作用。  
  23.  
  24. 如果您使用的操作系统是Windows 2008,请测试以下方式:  
  25.  
  26. 该方法是基于KB 940845方法3:  
  27.  
  28. a. 将BootPause值设为240您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404551/  
  29.  
  30. HKEY_LOCAL_MACHINE\\System\CurrentControlSet\Services\MSExchangeSA\Parameters  
  31. Name: BootPause   
  32. Type: DWORD   
  33. Value: 240  
  34.  
  35. b. 设置MSExchangeADTopology和MSExchangeIS服务依靠 Microsoft Exchange System Attendant。  
  36.  
  37. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeADTopology  
  38. Name: DependOnService   
  39. Type: Multi_SZ   
  40. Value: MSExchangeSA  
  41.  
  42. HKEY_LOCAL_MACHINE\CurrentControlSet\Services\MSExchangeIS  
  43. Name: DependOnService   
  44. Type: Multi_SZ   
  45. Value: MSExchangeSA  
  46.  
  47. 何洁 MCSE 微软全球技术支持中心  

结语:总之,store.exe是个吃内存的老虎,只要有闲置内存,它通吃。值得庆幸的是,在其他程序需要内存时,它又能释放。这也是一种很好的利用资源的方法。我在虚惊一场后,还觉得系统运行更快了,呵呵,还是有收获的。