我刚买了一台带有 4xXeon 和 32GB RAM 的旧 IBM x445。我很高兴地放入了 Win2008R2 DVD,但当它说系统只有 32 位 CPU 时有点惊讶。一个快速的谷歌证实了这一点。
32 位系统使用 3-4GB 以上的 RAM 有什么用?操作系统可以运行 10 个 4GB 进程吗?或者该流程是否需要明确的 PAE 支持?
我可以用这个盒子做什么?我想在其上托管虚拟服务器。运行 32 位 Win2008 Datacenter 并为每个虚拟服务器分配 4GB 是否可行?
编辑:改写为一些答案指向一个新手方向。
我的服务器一直处于非常高的内存使用率- 以至于它有时不允许我通过 ssh 登录。我必须在我登录之前重新启动服务器,当它重新启动时,内存使用率下降到 ~90% 并且慢慢地工作它高达 ~190%。
我注意到重新启动 apache 也会让我回到 90%,我可以使用托管工具慢慢观察内存上升。我一直在看top,但我不知道该看什么。我很确定罪魁祸首是 apache,但我不确定为什么。
top - 08:14:59 up 49 min, 1 user, load average: 0.04, 0.01, 0.00
Tasks: 41 total, 1 running, 40 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 946344k total, 724484k used, 221860k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND …Run Code Online (Sandbox Code Playgroud) 我们使用 WhatsUp Gold 来监控我们所有的网络服务器。在我们的 Linux 服务器(以及在很大程度上,我们的 FreeBSD 服务器)上,我的内存监视器有点问题。我们使用带有 WUG 的 SNMP 从服务器获取数据。SNMP 守护程序在服务器上返回的内存计数器是组合值(已使用、缓存、缓冲区)。现在我的一台服务器看起来像这样:
[admin@stgwww snmp]$ free -m
total used free shared buffers cached
Mem: 7872 1656 6216 0 143 1107
-/+ buffers/cache: 404 7467
Swap: 4867 0 4867
Run Code Online (Sandbox Code Playgroud)
通过 SNMP 返回给 WUG 的值是 1656。据我所知,缓存的 RAM 本质上是免费 RAM,具有附加的好处,即保留先前占用的数据,以防再次需要它。因此,出于想要了解实际使用了多少 RAM 的目的,我们得到的值具有误导性。如果我们脱离 WUG 绘制的图表,我们就会相信正在使用的 RAM 多于实际可用的 RAM,而可用的 RAM 却少了。
那么,最好的监控方式是什么?WUG 允许我编写 SSH 脚本,它可以每 5 分钟左右通过 SSH 进入服务器,执行脚本并返回值(只要它是单个数值)。有了这个,我写了一个脚本,从上面的例子中提取“404”数字并将其除以总量给我一个百分比使用值,我返回到 WUG 并在从 0 到 100 缩放的图表上绘制图表。但是这似乎是一种黑客攻击方式。
我最好监视空闲+缓冲区+缓存值吗?在 WUG 中是否有更好的方法来做到这一点?想法?
我租了CentOS的服务,以及与创造一个没有权限swap,我现在我现在开慢我的网站,具有上网速度慢putty。当我尝试了很多次,终于看到我的root部分putty
这是topcommond的系统情况列表,我不知道为什么我的centos系统会导致out of memory?(使用了2G内存)以及如何避免out of memory?有什么好办法在内存快用完的时候释放内存?谢谢。
Tasks: 390 total, 1 running, 389 sleeping, 0 stopped, 0 zombie
Cpu(s): 11.8%us, 2.4%sy, 0.0%ni, 85.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2097152k total, 2097152k used, 0k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18362 mysql 15 0 774m 307m 6532 S 99.8 15.0 177:06 …Run Code Online (Sandbox Code Playgroud) 我需要增加我们 DELL 服务器的 RAM。我尝试使用lshw查看已安装的内容,但无法查看安装的 RAM 是 UDIMM 还是 RDIMM。
Handle 0x1100, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: 1
Locator: DIMM_A1
Bank Locator: Not Specified
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 1333 MHz (0.8 ns)
Manufacturer: 00CE00B380CE
Serial Number: 8244850B
Asset Tag: 02103961
Part Number: M393B5773CH0-CH9
Handle 0x1101, DMI type 17, 28 bytes …Run Code Online (Sandbox Code Playgroud) 我们构建了一个新的 2 CPU、6 核服务器,具有 96GB 的 RAM。SQL Server Enterprise Edition 的最大内存设置为 92GB。
添加到负载平衡器几天后,我注意到 perfmon 说只使用了 45-46GB 的内存。
SQL 服务器报告它可以在服务器上看到 98GB 的内存,Windows 报告服务器上有 98GB 的内存。该数字可疑地接近一半的 RAM,并且服务器上的任务管理器通常会在运行时报告 SQL 服务器中配置的最大内存设置。
有什么建议 ?
提前为新手问题道歉,但我有一个专用的虚拟服务器,我正在使用它有 512MB 的 RAM 内存。我最近将 memory_limit 从默认的 128M 更改为 256M。我有什么理由不想把它一直提升到可用的完整 512M 吗?
当我看到有足够的内存可用时,我无法理解为什么内核会发出这个 oom 杀手:
我看后说有足够的可用内存
普通的
DMA
普通自由行
这是一个基于 NAND 闪存的嵌入式设备,具有 256 MB RAM
内核:2.6.31
myshellscript invoked oom-killer: gfp_mask=0xd0, order=2, oomkilladj=0
Backtrace:
[<c0106494>] (dump_backtrace+0x0/0x110) from [<c03641a0>] (dump_stack+0x18/0x1c)
r6:000000d0 r5:c9040c60 r4:00000002 r3:c0448690
[<c0364188>] (dump_stack+0x0/0x1c) from [<c015a314>] (oom_kill_process.clone.11+0x60/0x1b4)
[<c015a2b4>] (oom_kill_process.clone.11+0x0/0x1b4) from [<c015a738>] (__out_of_memory+0x154/0x178)
r8:c21e86e0 r7:001fb000 r6:00000002 r5:000000d0 r4:c9b6e000
[<c015a5e4>] (__out_of_memory+0x0/0x178) from [<c015a980>] (out_of_memory+0x68/0xa0)
[<c015a918>] (out_of_memory+0x0/0xa0) from [<c015d230>] (__alloc_pages_nodemask+0x42c/0x520)
r5:00000002 r4:000000d0
[<c015ce04>] (__alloc_pages_nodemask+0x0/0x520) from [<c015d388>] (__get_free_pages+0x18/0x44)
[<c015d370>] (__get_free_pages+0x0/0x44) from [<c0109418>] (get_pgd_slow+0x1c/0xe0)
[<c01093fc>] (get_pgd_slow+0x0/0xe0) from [<c0129ab0>] (mm_init.clone.43+0xb0/0xf0)
r7:c90858c0 r6:00000000 r5:c90858c0 r4:ce1a6680
[<c0129a00>] (mm_init.clone.43+0x0/0xf0) from [<c0129c40>] …Run Code Online (Sandbox Code Playgroud) 这是我用于 Minecraft 服务器和 Web 服务器的旧备用服务器。它目前有 2.5GB 的 RAM。我最近购买了 4GB (4x1GB) 的新 RAM,当我安装它们时,服务器无法启动。风扇启动,主板上没有非绿灯,但实际上并没有启动。
目前的内存是PC3200 400MHz ECC CL3,据我所知,我购买的内存是一样的。有什么办法可以让服务器启动吗?我只尝试使用 2 种新芯片,也尝试过不同的组合,但都没有成功。
编辑:我刚刚注意到当前的一块 RAM 是 PC3200U,其余的只是说 PC3200,而新的 RAM 都是 PC3200R。这是一个问题吗?
内存控制器信息来自dmidecode:
Handle 0x0005, DMI type 5, 24 bytes
Memory Controller Information
Error Detecting Method: 8-bit Parity
Error Correcting Capabilities:
None
Supported Interleave: One-way Interleave
Current Interleave: One-way Interleave
Maximum Memory Module Size: 1024 MB
Maximum Total Memory Size: 4096 MB
Supported Speeds:
70 ns
60 ns
Supported Memory …Run Code Online (Sandbox Code Playgroud) 我正在准备一个网络服务器,并且已经在上面安装了 Wordpress。一切正常。但是瞬间,内存使用量上升了。现在我只有 300MB 的可用内存。为了检查问题,我禁用了一些服务,如 php、nginx、fail2ban、psad 和 mysql。它减少了少量的内存使用量,但仍然太高。
然后我重新启动了机器并再次开始工作。一段时间后,内存使用量再次飙升!我怎样才能找到确切的问题?什么可能导致这个问题?
PS:它是一个 Ubuntu
PS:好像还没有使用swap。交换使用:0(服务器是虚拟机(KVM))
free -m 的输出
total used free shared buffers cached
Mem: 2003 1764 238 0 43 1350
-/+ buffers/cache: 370 1633
Swap: 2043 0 2043
Run Code Online (Sandbox Code Playgroud) memory ×10
centos ×2
linux ×2
ubuntu ×2
32bit-64bit ×1
apache-2.2 ×1
boot ×1
dell ×1
hp-proliant ×1
kernel ×1
linux-kernel ×1
memory-leak ×1
memory-usage ×1
monitoring ×1
oom ×1
php.ini ×1
snmp ×1
top ×1