我们目前正在设计我们的新数据库服务器,并提出了一个权衡,我不完全确定如何回答。
这些是我们的选项:48GB 1333MHz 或 96GB 1066MHz。
我的想法是 RAM 应该足够用于数据库服务器(我们有大量的数据和一些非常大的查询),而不是尽可能快。显然我们无法获得 1333MHz 的 16GB 芯片,因此选择了上述选项。
那么,我们应该获得大量较慢的 RAM,还是不太快的 RAM?
可用的 DIMM 插槽数:6
服务器:戴尔刀片 CPU:6 核(由于 Oracle 许可,只有单插槽)。
我有一台运行 Windows Server 2008 R2 x64 的服务器,具有 4GB 的 RAM,它承载大约 2-3 百万个文件,其中大部分是图像文件。
在一周的时间里,我注意到服务器上的应用程序由于内存不足导致过度分页到磁盘而缓慢爬行,这对当前在其上运行的所有服务产生连锁反应,导致主要性能问题。
在任务管理器中进行调查时,我注意到几乎所有 4GB 都在使用中,但是当您查看“进程”选项卡时,所有内存使用量的总和并没有加起来,最多只有 1.5GB 应该在使用中。
使用谷歌找到解决方案,似乎大部分 RAM 都用于“元文件”,它是文件系统上文件的 NTFS 信息的缓存,这样系统就不必再次向 MFT 查询信息。这个缓存永远不会被清除或在任务管理器中被标记为“缓存”或在 Sysinternal 的 RamMap 中被标记为“备用”。
有人建议安装 KB979149 修补程序,但在尝试安装时,提示“此更新不适用于您的计算机”。
到目前为止,我发现的唯一临时修复是:
目前,我必须每隔几天执行一次 2. 修复,以防止它达到瓶颈水平。
之前:(使用了 800 MB RAM - 其他应用程序无法使用此 RAM)
之后:(800 MB RAM 标记为缓存 - 可用于其他应用程序)

所以我对你们所有人的问题是:是否存在任何方法来限制此元文件的 RAM 使用量?
考虑到许多服务器级系统都配备了ECC RAM,在部署之前烧入内存 DIMM是否必要或有用?
我遇到过这样一种环境,其中所有服务器 RAM 都经过漫长的老化/压力测试过程。这有时会延迟系统部署并影响硬件交付时间。
服务器硬件主要是Supermicro,因此 RAM 来自各种供应商;不是直接来自制造商,如Dell Poweredge或HP ProLiant。
这是一个有用的练习吗?在我过去的经验中,我只是直接使用供应商 RAM。POST内存测试不应该捕获 DOA 内存吗?我早在 DIMM 实际发生故障之前就对 ECC 错误做出了响应,因为 ECC 阈值通常是保修安置的触发因素。
我目前在运行 Redhat x86_64 es5 的 Xeon 7550 服务器上,内存为 32gb。我安装了 memcache,配置中剩下的唯一步骤是设置它使用的内存量。我在旧服务器上完成了此操作,在那里我通过 Filezilla(root 访问权限)下载了一个文件并对其进行了编辑。现在,我不记得我编辑了哪个文件以及过程是如何进行的。我想将内存设置为使用 1 GB。
任何有一些洞察力的人?如果您愿意提供帮助,请彻底,因为我的 linux 服务器知识有限。
人们一直告诉我,为了提高 SQL 服务器的性能,购买尽可能快的 RAID 5 硬盘等。
所以我在想,与其把所有的钱都花在 RAID 5 和超级快速的硬盘上(顺便说一句,这并不便宜),为什么不直接获得大量 RAM?我们知道 SQL 服务器将数据库加载到内存中。内存比任何硬盘都快。
为什么不在服务器上塞入 100 GB 的内存?那么就使用带有RAID 1 的普通SCSI 硬盘。那不是更便宜和更快吗?
有没有办法记录有关 CPU 和内存使用情况的任务管理器信息以供以后检查?或等效的工具?
最近,我在kern.log我的一台服务器中注意到了这样的条目:
Feb 16 00:24:05 aramis kernel: swapper: page allocation failure. order:0, mode:0x20
Run Code Online (Sandbox Code Playgroud)
我想知道:
交换使用率非常低(小于 10%),到目前为止我还没有注意到任何进程因为内存不足而被杀死。
附加信息:
有人可以解释一下这个顶级输出吗?每个 PHP 进程使用的是总内存的 30% 还是已用内存的 30%?此外,所有 PHP 进程的总使用内存怎么会远远超过我的系统内存?这是共享内存吗?
提前致谢
top - 14:15:34 up 2 days, 12:38, 1 user, load average: 0.97, 1.03, 0.93
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.9%us, 0.3%sy, 0.0%ni, 94.6%id, 0.0%wa, 0.0%hi, 0.1%si, 0.1%st
Mem: 1029508k total, 992140k used, 37368k free, 150404k buffers
Swap: 262136k total, 2428k used, 259708k free, 551500k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6695 www-data 20 0 548m 307m 292m …Run Code Online (Sandbox Code Playgroud) 根据此处关于如何PHP-FPM消耗内存的讨论,我刚刚发现在top命令中读取内存时出现问题。这是我top刚刚重新启动后的屏幕截图PHP-FPM。一切正常:大约 20 个PHP-FPM进程,每个进程消耗 5.5MB 内存(占总数的 0.3%)。

这是重新启动之前的旧服务器PHP-FPM(上次重新启动后一天)。在这里,我们仍然有大约 25PHP-FPM个内存使用量翻倍(10MB 表示占总数的 0.5%)。因此,使用的总内存应为 600-700 MB。那么,为什么要使用 1.6GB 的内存呢?

memory ×10
linux ×3
top ×2
database ×1
ecc ×1
hard-drive ×1
hardware ×1
hp ×1
memcache ×1
memcached ×1
monitoring ×1
oracle ×1
performance ×1
php ×1
raid ×1
shell ×1
sql ×1
supermicro ×1
windows ×1