![Java 进程占用更多内存并且机器停止工作](https://linux22.com/image/879653/Java%20%E8%BF%9B%E7%A8%8B%E5%8D%A0%E7%94%A8%E6%9B%B4%E5%A4%9A%E5%86%85%E5%AD%98%E5%B9%B6%E4%B8%94%E6%9C%BA%E5%99%A8%E5%81%9C%E6%AD%A2%E5%B7%A5%E4%BD%9C.png)
我是 Linux 新手,我正在使用 Ubuntu 14.04LTS,但我的机器突然停止工作。我运行
$ free -m
并得到结果
total used free shared buffers cached
Mem: 7897 4318 3578 313 84 2054
-/+ buffers/cache: 2179 5717
Swap: 8013 0 8013
当我跑步时top -c
我得到
15001 qi34 20 0 1681144 133824 11896 S 63.0 1.7 0:29.43 /usr/bin/java -Djdk.home= -Djruby.home=/home/qi34/.rvm/rubies/jruby-1.7.16 +
15013 qi34 20 0 1681144 133288 11892 S 60.4 1.6 0:29.21 /usr/bin/java -Djdk.home= -Djruby.home=/home/qi34/.rvm/rubies/jruby-1.7.16 +
15087 qi34 20 0 1681144 124008 11936 S 57.7 1.5 0:28.88 /usr/bin/java -Djdk.home= -Djruby.home=/home/qi34/.rvm/rubies/jruby-1.7.16 +
14290 qi34 20 0 2632636 381032 13040 S 53.7 4.7 1:05.42 /usr/bin/java -Djdk.home= -Djruby.home=/home/qi34/.rvm/rubies/jruby-1.7.16 +
14349 qi34 20 0 2632636 374516 13052 S 53.4 4.6 1:05.22 /usr/bin/java -Djdk.home= -Djruby.home=/home/qi34/.rvm/rubies/jruby-1.7.16 +
14348 qi34 20 0 2632636 377124 13048 S 53.1 4.7 1:03.12 /usr/bin/java -Djdk.home= -Djruby.home=/home/qi34/.rvm/rubies/jruby-1.7.16 +
此过程占用更多内存。我运行了killall java
但无法解决我的问题。请提出建议。
答案1
尝试使用此命令来获取所有 Java 进程
ps -aux |grep java| cut -c10-15
然后使用杀死它们
kill -9 process id from the above command
现在找出罪魁祸首程序是什么。在安装任何东西之前 - 尝试阅读发行说明。您需要卸载它并删除此罪魁祸首程序创建的目录。如果您可以提供有关此程序的更多详细信息,那么可以提供具体答案。
答案2
您是否尝试过杀伤力选项?pkill 将向每个进程发送指定的信号(默认为 SIGTERM),而不是将它们列在 stdout 上,并且将立即终止与指定进程名称匹配的任何进程,除非该进程正在执行系统调用。在这里,试试这个
pkill -9 java
将尝试立即关闭名称匹配的所有进程Java 语言 然后你可以像这样再次检查
ps aux | grep java
让我知道事情的后续。!
答案3
上述进程因为 cron 作业而运行,这是我的错。在我的 rails 应用程序中,我运行了 cron 作业,这就是创建该进程的原因。