草庐IT

OOM-killer

全部标签

java - Linux OOM Killer 和 Java 进程

在我们的生产环境中,我经常遇到Tomcat进程被LinuxOOM杀死的问题。检查/var/log/messages它说java没有被污染并且java调用了OOMkiller。-Xms20480m-Xmx20480m在32GB的盒子上。我看到下面的崩溃-OOM是否导致了这次崩溃?或者崩溃是因为OOM而发生的?我该如何调试这个问题?##AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:##SIGSEGV(0xb)atpc=0x00007f4c3230aad7,pid=16248,tid=139964439296320##JREver

linux OOM(内存不足) killer 电子邮件通知?

Thisanswer描述了Linux上的内存不足killer。有没有办法在OOMkiller杀死某些东西时得到通知?最好是电子邮件。人们可能会用看门狗来做到这一点,但我想知道最简单、最可靠的方法是什么。 最佳答案 “logwatch”程序会定期向您发送它配置为感兴趣的所有日志行。它可以配置为通过电子邮件向您发送有关OOM的信息(除非它本身内存不足)。电子邮件通知不能很好地替代来自外部系统的适当监控,因为没有可用内存的机器通常无法发送电子邮件。此外,如果您的系统很重要,那么电子邮件可能太慢而无法从Ops那里得到回复(尤其是在下类时间)

linux - 为什么 cgroup 的内存子系统在进程允许内存超过 cgroup 限制时使用 oom-killer 而不是返回内存分配失败?

我们使用cgroup限制程序使用更多资源。但是,当内存超过cgroup的限制时,它会杀死进程。为什么cgroup的内存子系统在进程允许内存超过cgroup限制时使用oom-killer而不是返回内存分配失败? 最佳答案 看起来cgroups可以使用oom-killer或暂停进程(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html)。但是使用ulim

当我有正确的能力时无法打开/proc/self/oom_score_adj

我正在尝试为进程设置OOMkiller得分调整,灵感来自oom_adjust_setupinOpenSSH'sport_linux.c.为此,我打开/proc/self/oom_score_adj,读取旧值,然后写入新值。显然,我的进程需要是root或具有CAP_SYS_RESOURCE的能力才能做到这一点。我得到了一个我无法解释的结果。当我的进程没有能力时,我可以打开该文件并读取和写入值,尽管我写入的值没有生效(足够公平):$./a.outCAP_SYS_RESOURCE:noteffective,notpermitted,notinheritableoom_score_adjval

linux - 短读或 OOM 加载数据库。不可恢复的错误,现在中止

重启我的服务器后,我无法启动redis。从日志中我发现这条消息“ShortreadorOOMloadingDB.Unrecoverableerror,abortingnow.”。我是redis的新手,不知道该怎么做才能解决这个问题。我也无法为此找到任何可靠的解决方案。请帮忙 最佳答案 警告:这将永久删除您的数据库。仅当您不关心存储的数据或您有备份时才使用。我是这样解决问题的:rm-rf/var/lib/redis/dump.rdbrm-rf/var/run/redis.pidserviceredis-serverstart那就OK了

Android进程 killer

也许你可以帮忙。是否有可能获取所有在Android系统中运行的Processes的列表,并杀死其中的一些?我知道有一些应用程序(taskmanager),但我想编写自己的简单应用程序。我想写一个简单的任务管理器,只是列出所有进程和会杀死其中一些的按钮。你能不能写一些我可以调用的Java方法来获取进程列表,以及杀死它们的方法。或者只是给我一些建议。 最佳答案 杀死Android中的应用程序/服务通常是一个非常糟糕的主意。虽然可以编写taskkiller应用程序,但不应鼓励将其用于开发/调试目的之外的任何事情。任务管理是Android操

Android 的 SSLServerSocket 导致 App 中的原生内存增加,OOM

背景我正在开发一个提供简单HTTP/HTTPS服务器的Android应用程序。如果配置了HTTPS服务,那么在每个连接上都会观察到native内存使用量增加,最终导致应用程序崩溃(oom),而使用HTTP配置可保持native内存使用量相对恒定。应用程序的JavaVM在两种配置中保持相对恒定。该应用程序提供一个HTML页面,其中包含一个带有定期轮询的javascript(每秒一次json轮询),因此使用HTTPS配置调用应用程序页面并保持页面打开几个小时将导致提到的超出-内存,因为native内存使用量增加。我已经测试了许多在互联网上找到的SSLServerSocket和SSLCont

android - 应用程序被Android或任务 killer 杀死后如何保存预定的警报?

安排闹钟的代码。PendingIntentsender=PendingIntent.getBroadcast(this,id,intent,PendingIntent.FLAG_UPDATE_CURRENT);AlarmManageram=(AlarmManager)getSystemService(ALARM_SERVICE);am.set(AlarmManager.RTC_WAKEUP,time,sender);它工作正常,但是当我在任务killer中杀死我的应用程序时,我失去了预定的警报。如何解决这个问题? 最佳答案 让您的应

android - 任务 killer 如何工作?

taskkiller应用程序的实用性存在争议,但我想知道:它们实际上是如何工作的?怎么可能杀死特定的进程?是否有用于此的API,如果有,它实际上做了什么?编辑值得补充的是:我看到任务killer应用程序会杀死非root设备上的进程。所以,我想知道如何杀死你在Android中不拥有的进程? 最佳答案 简而言之,自动任务killer通过轮询操作系统以获取当前正在运行的进程列表以及它们正在消耗的内存。然后,通过智能算法或用户输入,TaskKillers向系统发出调用,告诉系统终止进程。有两个API可以做到这一点。他们是Process.ki

node.js - 部署到 Digital Ocean 的 Meteor 应用程序卡在 100% CPU 和 OOM

我有一个使用MeteorUptoDigitalOcean部署的Meteor(0.8.0)应用程序,该应用程序一直卡在100%的CPU上,只是因为内存不足而崩溃,然后以100%的CPU重新启动。在过去的24小时里,它一直处于这样的状态。奇怪的是没有人使用服务器,meteor.log没有显示太多线索。我有用于数据库的带有oplog的MongoHQ。digitalocean规范:1GBRam30GBSSD磁盘纽约2Ubuntu12.04.3x64显示问题的屏幕截图:请注意,屏幕截图是昨天捕获的,它一直固定在100%cpu,直到它因内存不足而崩溃。日志显示:FATALERROR:Evacuat