我有一个旧的,旧的服务器与交换奇怪的问题。 Linux版本: 红帽企业Linux服务器版本5.6(Tikanga) 内核版本: 2.6.18-238.el5 服务器是虚拟的 。 服务器有2个虚拟套接字。 我知道交换分区是小的,要添加一个交换文件,但是重启几个小时后,情况是这样的: free -m total used free shared buffers cached Mem: 15922 15806 116 0 313 13345 -/+ buffers/cache: 2147 13775 Swap: 2047 2042 4 Oracle数据库已安装,但几乎未使用。 我想了解为什么内存分配这样。 我的意思是13345caching,意味着免费。 为什么要交换? 以前的系统pipe理员configurationswappiness为: 3 。 巨大的页面没有configuration 。 我看到一些类似的post,但没有解决scheme来理解。 一个答案在这里: Linux的红帽5.4 – 交换内存仍然可用谈到numa,所以我挖了一下(我是一个DBA,而不是一个系统pipe理员,所以很抱歉,如果我错过了什么)。 grep NUMA=y /boot/config-`uname -r` CONFIG_NUMA=y CONFIG_K8_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_ACPI_NUMA=y dmesg […]
我正在分析rabbitMQ内存问题。 有时,当大部分队列为空时,服务器将耗尽内存,并且很less有消息处于待处理状态。 我可以从这个内存状态快照中学到什么? 特别是二进制引用代表什么?
我有一个Windows Server 2012与相当慢的硬盘驱动器,但有很多内存 ,我不能改变(这实际上是一个亚马逊EC2)。 我能做些什么来优化性能? 我有16 GB的物理内存,但5-6 GB的它始终保持自由 。 我应该增加磁盘caching大小吗? 或者,也许禁用页面文件? 或者使其大小固定? 对一般Windows调优技巧感兴趣,可能不涉及“从亚马逊购买更快的驱动器”:) PS。 服务器运行一个IIS Web服务器(密集使用)和一个小型(6GB)数据库的SQL服务器。 SQL已经使用7GB(看起来像所有的数据库已经被caching在那里)。 多谢你们!
Linux是否保留从块caching中的LVM逻辑卷中读取的块,如同从“常规”块设备读取块一样,还是IO直接? 另外,通常的缓冲语义是否适用于写入逻辑卷?
我们正在使用rsnapshot进行备份。 它使用硬链接来有效地存储不变的文件,并从服务器rsyncs更改的文件。 硬链接部分调用这样的命令 cp -al /current /old 但是这个过程耗尽了所有可用的内存。 有没有办法限制cp进程的内存,还是有一个memnice实用程序一个很好/ ionice?
相关: 使subprocess的整体内存使用率 有没有一种方式让非特权用户或root用户允许非特权用户创build一个systemd作用域(或由systemdpipe理的其他控制组),以便该作用域的内存使用量是有限的,并且该限制可由用户? 或者,为什么这不能达到上述效果: $ systemd-run –scope –user –unit=limit-test.scope bash Running as unit limit-test.scope. $ systemctl show –user limit-test.scope |grep Mem MemoryAccounting=no MemoryLimit=18446744073709551615 $ systemctl set-property –user limit-test.scope MemoryAccounting=yes $ systemctl set-property –user limit-test.scope MemoryLimit=100M $ systemctl show –user limit-test.scope |grep Mem MemoryAccounting=yes MemoryLimit=104857600 $ python >>> a = [1]*1000000000 # happily eats 7.4G of […]
我正在研究用于科学数据分析的服务器。 它正在运行RHEL 6.4它有近200GB的RAM。 用户通过SSH运行的速度非常缓慢,经过一番探索之后,我很快注意到内存的使用率非常高。 奇怪的是,即使在闲置状态下,它仍然使用大量的RAM: 我也通过htop看,我看不到任何正在运行的进程正在使用超过0.1%的内存。 所以我想知道发生了什么事? 现在,唯一由用户启动的进程运行是两个NFS安装的共享之间的rsync。 我尝试重新启动服务器,并且在几分钟内响应更快,但内存使用率再次上升。 有什么办法可以确定为什么内存使用率如此之高?
有几个讨论抱怨PHP-FPM高内存使用率,没有任何实际的方法来克服。 当我用大量的testing来探究这个问题时,问题与PHP-FPM时代的年龄有关。 想象一下,我们有pm.max_children = 10,并有一个消耗10M内存的PHP脚本。 一个预计需要100MB的MB。 这对前10个过程是正确的。 处理20个PHP脚本后,系统内存使用量为200MB,这意味着在前10个进程中消耗的内存还没有被释放。 这将增加内存使用量,直到PHP-FPM进程重置时达到pm.max_requests 。 注意:这只是一个大致简化的示例,而不是实际的行为。 在现实世界中,这有时会发生。 通常,在PHP脚本的末尾,PHP所消耗的内存将被自动释放。 在PHP-FPM中,这个内存sometimes (我不知道什么时候)不会被释放。 这意味着用于处理类似的脚本(使用10MB内存) pm.max_children = 10 pm.max_requests = 100 你不需要100MB或1000MB的内存; 但介于两者之间。 换句话说,一些PHP previous processes脚印留在PHP-FPM孩子PHP-FPM 。 与此理论相一致, PHP-FPM的高内存使用率将通过减lesspm.max_requests来克服,但这不是最终的解决scheme,我们需要find一种方法来释放以前PHP进程对PHP-FPM儿童。 任何想法?
我正在使用内存控制器的cgroups设置每个用户的内存限制(使用memory.limit_in_bytes设置)。 问题是这个设置也帐户caching使用情况。 因此,如果限制为1GB,并且用户仅下载或复制1GB文件,则其进程将被终止。 更糟糕的是,caching的页面仍然保留在内存中,所以即使运行零进程,用户的“内存使用量”仍然接近1GB。 自然,这是没有意义的。 我只想限制每个用户的总私有(非匿名)内存使用量。 我怎样才能做到这一点? 或者,让OOM杀手在去掉杀死进程之前尝试删除用户的caching页面,甚至不释放caching的页面。
– 是的,这个简单的问题。 在大脑死亡的mod_XxX(比如mod_php )应用程序中消耗大量内存太容易,所以我只是想知道Apache允许做什么来应对。