java - JVM_Read持续消耗CPU

标签 java linux

我是 java 编程的新手,发现一个进程持续消耗 ~100% cpu。

enter image description here

这是同一线程的 pstack。

Thread 99 (Thread 0x7f3ea8121700 (LWP 7133)):
#0  0x000000350920e82d in read () from /lib64/libpthread.so.0
#1  0x00007f3eb5245431 in JVM_Read () from /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.191.x86_64/jre/lib/amd64/server/libjvm.so
#2  0x00007f3eb46c1b57 in ?? () from /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.191.x86_64/jre/lib/amd64/libjava.so
#3  0x00007f3ead08f4c6 in ?? ()
#4  0x00000006c5ebc440 in ?? ()
#5  0x0000000000000000 in ?? ()

可以采取什么措施来停止消耗 CPU?

提前致谢。

最佳答案

JVM_Read意味着将数据从文件描述符读取到 char 数组中。这表明 JVM 上运行的任何东西都在忙着做实际工作。

获取并检查线程转储 (kill -3 <PID>) 或阅读程序源代码会更实用。可能还涉及其他因素,例如后台 GC 线程。

关于java - JVM_Read持续消耗CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53728518/

相关文章:

java - 在内存中存储大量 IP 地址

java - 是否有任何 Java API 可以读取 Exchange 数据库或 Outlook 邮箱中已删除的邮件?

java - 为什么 java Iterable 接口(interface)不能采用泛型通配符?或者 : why can't I an overriding iterator() method return an Iterator for a subclass?

linux - 如何使用 ls、grep 和 wc 生成/usr/bin 目录中所有大小至少为 10,000,000 字节的文件的列表?

linux - 列出特定文件格式搜索后的文件数

linux - 在 unix 脚本中创建变量

java相当于python用于散列

java - 在 jetty 停止之前调用函数

linux - 用于删除旧文件的 BASH 脚本,并创建一个包含已删除文件总数和大小的文本文件。

linux - 当 TEMPLATE=lib 时,如何强制 qmake 不创建指向目标的符号链接(symbolic link)?