我看到我的一些服务正在遭受“错误分配内存”或“无法创build新进程”等错误。 由于日志显示当时系统有大量的可用内存(大约26GB),所以我对此略有困惑,并且没有特别强调任何其他方式。 在添加“Out of swap space?”查询后发现类似错误的JVM崩溃之后? 这让我深入一点。 事实certificate,有人用2GB的交换文件configuration了我们的区域。 我们的区域没有内存限制,目前可以访问它所需的128GB内存。 我们的SA正在计划在32GB的时候将其限制在有机会。 我目前的想法是,虽然有足够的内存分配的操作系统,交换空间似乎严重不足(基于这里的其他答案)。 看起来Solaris似乎想要确保有足够的交换空间以防万一需要交换(即保留交换空间)。 这是正确的想法还是有一些其他的原因,我得到内存分配错误与这么大的内存空间和看似不足的交换空间?
我们的生产服务器上的IIS 7中的虚拟内存限制(KB)设置值为0.这是否意味着我们的应用程序不使用任何虚拟内存,或者这意味着,虚拟内存的数量没有最大限制用过的?
我正在调查基于Debian的Amazon EC2实例的虚拟内存configuration,由于我的背景不在系统pipe理员中,所以我对所看到的有点困惑。 我们使用的是MongoDB,而我们的监控服务器表明Mongo进程使用了大约20GB的交换空间虚拟内存 ,但是我无法弄清楚它在服务器上的位置。 据我所知,使用Google提供的各种build议方法,数量要么less得多,要么根本没有。 top表示有1.8GB的交换内存: top – 15:35:21 up 6 days, 3:23, 1 user, load average: 1.60, 1.43, 1.37 Tasks: 47 total, 2 running, 45 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 1.3%sy, 0.0%ni, 14.7%id, 83.8%wa, 0.0%hi, 0.0%si, 0.1%st Mem: 3928924k total, 2855572k used, 1073352k free, 640564k buffers Swap: 0k total, 0k used, 0k […]
对于我们的其中一个应用程序,我们需要在Windows机器上configuration虚拟内存来pipe理系统。 这可以在系统属性 – >性能(设置…) – >性能选项高级选项卡 – >虚拟内存更改… – >检查硬盘是否切换到“系统pipe理大小”手动完成。 这很好,但是我必须为大量的机器执行此操作,并希望在检查其他configuration时收集此信息的批处理命令或PowerShell脚本。 我发现与本页面最接近的是 wmic computersystem get AutomaticManagedPagefile 但是,这只会检查顶部的checkbox是否configuration,而不是特定的硬盘驱动器。 有没有人有任何build议如何以更自动化的方式做到这一点?
可能重复: 了解Linux上的虚拟内存使用情况> swap + physical 我们有以下的过程: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10684 root 8 -15 89.6g 13g 1.1g S 406.9 21.8 316:34.89 java 假设我们只有64GB的内存,这个虚拟内存的数量是否合适? 这里还有关于物理内存的信息: Mem: 65995412k total, 64967388k used, 1028024k free, 3976288k buffers Swap: 32764556k total, 1236k used, 32763320k free, 19534812k cached 正如你所看到的,只有1236k交换。 我们想知道哪里缺less30GB + RAM? 他们在磁盘上? […]
在我的VPS(CentOS)4GB内存(2 + 2需要时dynamic分配),我有以下选项运行的Tomcat JAVA_OPTS =“ – Xms256m -Xmx2048m -XX:MaxPermSize = 256m”。 现在,当我尝试启动其他基于Java的应用程序(如哈德森服务器),我得到以下错误: Java运行时环境没有足够的内存来继续。 本地内存分配(malloc)未能为Chunk :: new分配664080个字节 包含更多信息的错误报告文件保存为: /server/hs_err_pid26476.log 似乎系统不能分配650KB的内存,但它应该有1.2 GB的免费。 免费-m caching总共使用的空闲共享缓冲区 Mem:4096 2816 1279 0 0 0 – / + buffers / cache:2816 1279 交换:0 0 0 我发现我应该也检查/ proc / user_beancounters,显示privvmpages failcnt。 我不知道这是什么意思(供应商提供4GB的内存吗?还是他在作弊?) #cat / proc / user_beancounters 版本:2.5 uid资源占用maxhold barrier limit failcnt 70692271:kmemsize […]
i386 Linux内核可针对每个进程AFAIK的虚拟地址空间configuration2,3或4 GiB限制。 有什么我可以在/ proc或其他地方查询,以告诉如何configuration当前运行的内核? 更新:感谢如何查询4G的答案。 任何方式,我可以查询2G与3G?
我有一个Windows 2008(虚拟)机器,我想添加一个页面文件。 但是,任何时候我尝试设置页面文件的大小,在重新启动后,它会跳回到0.为什么这是?
在服务器反弹发生之后,在大约40-45天的时间周期之后,我们会收到连续的“Committed Virtual Memory”警报,指出交换空间的使用量大于4GB。这也会导致应用程序执行速度非常慢,停滞交易的数量。 服务器设置: 4个Tomcat服务器(版本7.0.22),由2个Apache服务器负载均衡(非群集)。 Apache服务器本身提供静态内容和路由到这四个tomcat服务器。 Java运行时版本:Java版本“1.6.0_30”Java™SE运行时环境(内部版本1.6.0_30-b12)Java HotSpot™64位服务器虚拟机(版本20.5-b03,混合模式 内存启动参数: MEMORY_OPTIONS="-Xms1024m -Xmx1024m -Xss192k -XX:MaxGCPauseMillis=500 -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled" 监视 – Wily监视可在所有监视关键服务器参数的生产服务器中使用,并根据预先定义的设置发送可configuration的警报电子邮件。 注意:每个服务器还有两个独立的tomcat域,运行不同的应用程序 调查地区: 没有堆内存泄漏,GC运行正常,没有任何问题 当前繁忙的线程数量直接对应于应用程序的使用情况 – 周末和晚上的数量较less。 的线程相比,营业时间 ThreadLocal在内部使用WeakReference。 如果ThreadLocal没有被强引用,它将被垃圾回收,尽pipe各个线程都通过该ThreadLocal存储了值。 此外,ThreadLocal值实际上存储在线程中; 如果线程死亡,则通过ThreadLocal收集与该线程相关的所有值。 如果你有一个ThreadLocal作为最终的类成员,这是一个强有力的参考,它不能被收集,直到类被卸载。 但是这是任何类成员的工作方式,不被视为内存泄漏。 引用的问题只有在存储在ThreadLocal中的值强烈引用ThreadLocaltypes的循环引用时才会起作用。 在这种情况下,值(SimpleDateFormat)没有向后引用到ThreadLocal。 这段代码没有内存泄漏。 任何人都可以请让我知道这是什么原因,以及要监控什么?
顶部的手册页定义SHR为: t:SHR – 共享内存大小(kb)任务使用的共享内存量。 它只是反映了可能与其他进程共享的内存。 我可以看到这种增长的一个过程,但我不确定在这里报告什么。 由这个进程链接的共享对象库是分配和释放内存,但不打开任何共享内存段,并且pmap不显示正在加载的任何其他库。 还有什么可以弥补共享内存的大小,还有什么可以获得有关它的信息呢?