• 关于 busy 的搜索结果

问题

WARNINGpool wwwseems busy怎么办呢?我配置不对吗

stzh 2019-12-01 21:04:22 5868 浏览量 回答数 1

回答

Java 应用程序运行中,有时会遇到 Java 应用( JVM )进程 CPU 使用率高的情况。在这种情况下,Java 应用的性能通常会下降,我们可以借助一些工具或命令进行分析诊断,找到并优化造成 Java 应用( JVM )进程 CPU 使用率高的原因。 1. 使用 edas-agent 自带的命令诊断 EDAS 为导入 ECS 集群中的 ECS 提供了一个可以直接显示出应用进程中使用 CPU 的线程及其 StackTrace,可以帮助用户快速找到造成应用进程 CPU 使用率高的问题原因。 使用 root 账号通过 SSH 登录到 CPU 高的应用进程所在的 ECS,然后切换到 admin 账号,执行 edas busy-threads 即可查看到应用进程中消耗 CPU 高的线程(默认前 5 个): [root@iZbp19o2g75lcdht92iaaeZ ~]# su - admin [admin@iZbp19o2g75lcdht92iaaeZ ~]$ edas busy-threads 09/28/19 22:57:07 [INFO] EXECUTING: busy-threads [1] Busy(4.6%) thread(3222/0xc96) stack of java process(3221) under user(admin): "main" #1 prio=5 os_prio=0 tid=0x00002ab68004e800 nid=0xc96 runnable [0x00002ab67c1df000] java.lang.Thread.State: RUNNABLE at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409) at java.net.ServerSocket.implAccept(ServerSocket.java:545) at java.net.ServerSocket.accept(ServerSocket.java:513) at org.apache.catalina.core.StandardServer.await(StandardServer.java:490) at org.apache.catalina.startup.Catalina.await(Catalina.java:819) at org.apache.catalina.startup.Catalina.start(Catalina.java:765) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:309) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:443) [2] Busy(0.9%) thread(2725/0xaa5) stack of java process(2721) under user(admin): "DestroyJavaVM" #13 prio=5 os_prio=0 tid=0x00002ba81004c000 nid=0xaa5 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE [3] Busy(0.0%) thread(3221/0xc95) stack of java process(3221) under user(admin): [4] Busy(0.0%) thread(2721/0xaa1) stack of java process(2721) under user(admin): 该脚本的使用帮助如下: [admin@iZbp19o2g75lcdht92iaaeZ component]$ edas busy-threads -h Usage: busy-threads.sh [OPTION]... [delay [count]] Find out the highest cpu consumed threads of java, and print the stack of these threads. Example: busy-threads.sh # show busy java threads info busy-threads.sh 1 # update every 1 seconds, (stop by eg: CTRL+C) busy-threads.sh 3 10 # update every 3 seconds, update 10 times Options: -p, --pid find out the highest cpu consumed threads from the specifed java process, default from all java process. -c, --count set the thread count to show, default is 5 -a, --append-file specify the file to append output as log -s, --jstack-path specify the path of jstack command -F, --force set jstack to force a thread dump use when jstack does not respond (process is hung) -m, --mix-native-frames set jstack to print both java and native frames (mixed mode) -l, --lock-info set jstack with long listing. Prints additional information about locks --cpu_period period of time for collecting cpu stats, in secs, default 2 (this option is valid only when --current option is set) --current use current cpu stats rather than that since start -h, --help display this help and exit 常用的几个参数及选项(注意使用的是 admin 账号执行): #每隔 2 秒执行一次,共执行 5 次(每次默认显示应用进程中前 5 个使用 CPU 高的线程) edas busy-threads 2 5 #显示指定 Java 进程的前 5 个使用 CPU 高的线程: edas busy-threads -p <jvm_pid> #显示 Java 进程中前 10 个使用 CPU 高的线程: edas busy-threads -c 10 #计算最近的 2 秒种内 CPU 使用较高的线程: edas busy-threads --current 2. 使用开源工具诊断 在非 ECS 集群的环境,可以直接使用下面这个开源的脚本来找到占用指定进程中排名前几位 CPU 高的线程: admin$ wget --no-check-certificate https://raw.github.com/oldratlee/useful-scripts/release/show-busy-java-threads admin$ chmod +x show-busy-java-threads admin$ ./show-busy-java-threads 具体使用方法,请参见 show-busy-java-threads 。 除了这个脚本以外,还可以使用阿里巴巴的 Java 问题综合诊断工具 Arthas。该工具也可以用来显示指定 JVM 进程中使用 CPU 的排名前几位的线程。 #显示当前连接的 JVM 进程中 CPU 占用排名前 3 名的线程及 StraceTrace 信息: admin$ thread -n 3 "as-command-execute-daemon" Id=29 cpuUsage=75% RUNNABLE at sun.management.ThreadImpl.dumpThreads0(Native Method) at sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:440) at com.taobao.arthas.core.command.monitor200.ThreadCommand$1.action(ThreadCommand.java:58) at com.taobao.arthas.core.command.handler.AbstractCommandHandler.execute(AbstractCommandHandler.java:238) at com.taobao.arthas.core.command.handler.DefaultCommandHandler.handleCommand(DefaultCommandHandler.java:67) at com.taobao.arthas.core.server.ArthasServer$4.run(ArthasServer.java:276) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@6cd0b6f8 "as-session-expire-daemon" Id=25 cpuUsage=24% TIMED_WAITING at java.lang.Thread.sleep(Native Method) at com.taobao.arthas.core.server.DefaultSessionManager$2.run(DefaultSessionManager.java:85) "Reference Handler" Id=2 cpuUsage=0% WAITING on java.lang.ref.Reference$Lock@69ba0f27 at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.Reference$Lock@69ba0f27 at java.lang.Object.wait(Object.java:503) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) 更多参数及解释,详见 thread 命令。 3. 使用传统方式诊断 在没有互联网连接的主机还可以使用下面原始的方式来获取 CPU 占用较高的线程: #在执行 JVM 进程 CPU 高时,每隔 3-5 秒执行一次,执行 3-5 次。 admin$ top -Hbp <jvm_pid> -d 1 -n 1 >> top.<jvm_pid>.txt && jstack <jvm_pid> >> jstack.jvm_pid.txt 例如: admin$ top -Hbp 22801 -d 1 -n 1 >> top.22801.txt && jstack 22801 >> jstack.22801.txt 从收集到的 top.xxxxx.txt 中找到 CPU 占用率最高的线程 ID(注意跟 jstack.xxxxx.txt 文件中的线程堆栈信息一一对应)。 将这些线程 ID (十进制的数字)转换成十六进制(可以用 printf %x 1234)。 用这些转换后的十六进制的线程 ID 去 jstack.xxxxx.txt 文件中搜索,即可找到对应线程的信息(这方面资料较多,这里不再赘述)。

保持可爱mmm 2020-03-28 23:00:23 0 浏览量 回答数 0

回答

这个是解决broker busy的 waitTimeMillsInSendQueue=3000 这个是解决system busy的 osPageCacheBusyTimeOutMills=3000

游客pklijor6gytpx 2019-12-02 03:10:14 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

问题

云服务器 ECS Linux 服务器 umount 数据盘提示:device is busy

行者武松 2019-12-01 19:33:51 1335 浏览量 回答数 1

问题

rocketmq发送消息遇到system busy怎么处理?

游客pklijor6gytpx 2019-12-01 21:54:19 39 浏览量 回答数 1

回答

DSI_REG->DSI_INTSTA.BUSYDSI_REG是某个类指针或结构体指针,这显然是个共享资源,其他地方也在操作这个指针,所以这个指针内部的成员有可能被改变。DSI_INTSTA是这个指针的一个成员变量,这个成语变量同样是结构体或类BUSY是DSI_INTSTA的成员变量。那个循环的意思很简单,就是只要这个BUSY不为假,就永远循环下去,即你的程序会卡在那不动。另外我上面也提到DSI_REG是某个共享资源,其他线程可能也会改变其内部值。所以某个时刻其他线程改了BUSY,使其为假,就跳出while,程序继续执行了。换句话说你这while意思就是只要忙,那就得等着,不忙,继续~下面那个while一个作用~

a123456678 2019-12-02 02:17:48 0 浏览量 回答数 0

问题

云服务器 ECS Linux 服务器 umount 数据盘提示:device is busy

KB小秘书 2019-12-01 19:35:33 30 浏览量 回答数 1

问题

云监控...exceptions.ServerException:Service is busy

kilde 2019-12-01 18:52:22 405 浏览量 回答数 0

回答

Busy spin是一种在不释放CPU的基础上等待事件的技术。它经常用于避免丢失CPU的缓存中的数据(如果线程先暂停,之后再其他CPU上运行就会丢失)。所以,如果你的工作要求低延迟,并且你的线程目前没有任何顺序,这样你就可以通过循环检测队列中的新消息来代替调用 sleep() 或 wait() 方法。它唯一的好处就是你只需等待很短的时间,如几微秒或几纳秒。LMAX 分布式框架是一个高性能线程间通信的库,该库有一个BusySpinWaitStrategy 类就是基于这个概念实现的,使用 busy spin 循环EventProcessors 等待屏障。

cysnow 2019-12-02 01:48:17 0 浏览量 回答数 0

问题

升级bash,reboot后启动失败

a123456678 2019-12-01 20:06:50 1224 浏览量 回答数 1

回答

failed:Device or resource busy :错误的原因是这个模块你已经挂载, 不过一般挂载点不会放在home目录下~

小旋风柴进 2019-12-02 02:33:32 0 浏览量 回答数 0

问题

解决一个按oschina tomcat server.xml配置的疑惑 : 配置报错

kun坤 2020-06-03 14:58:33 5 浏览量 回答数 1

问题

setup.sh运行出错提示mount错误

小旋风柴进 2019-12-01 19:41:59 957 浏览量 回答数 1

问题

我的邮箱打不开为什么就是这样显示

bg4ury 2019-12-01 21:32:38 5188 浏览量 回答数 1

问题

内容分发网络CDN,不好用啊!

午夜狂刀 2019-12-01 21:28:53 6149 浏览量 回答数 4

问题

linux下除了iwlist之外的其他扫描wifi热点的方法

杨冬芳 2019-12-01 20:23:51 1165 浏览量 回答数 3

问题

[@talishboy][¥20]什么是 Busy spin?我们为什么要使用它?

李博 bluemind 2019-12-01 19:26:05 451 浏览量 回答数 1

回答

Re今天下午ECS上网站突然打不开,提示数据库出错 [pool www] seems busy (you may need to increase 程序池满了。 。增加最大限制连接数, 升服务器配置

chnxiaoxiao 2019-12-02 02:32:53 0 浏览量 回答数 0

问题

使用redis3.0.2搭建集群时出现create ERR Slot 9838错误

落地花开啦 2019-12-01 19:59:36 904 浏览量 回答数 1

问题

如何查看进行中的订单

菠萝0954 2019-12-01 21:59:02 2039 浏览量 回答数 3

问题

504 gateway time out

九隆 2019-12-01 19:43:53 530 浏览量 回答数 1

回答

Reumount在/usr下面的硬盘,提示device is busy,杀掉这些进程是否会影响系统 已解决,在fstab中把自动挂载注释掉,然后重新启动,硬盘既未自动挂载。

bunoiue 2019-12-02 01:47:25 0 浏览量 回答数 0

问题

使用redis3.0.2搭建集群时出现create ERR Slot 9838 ?报错

爱吃鱼的程序员 2020-06-12 14:40:51 0 浏览量 回答数 1

问题

调用车牌识别,本地上传时总是服务忙,连接超时

1145005701353666 2020-07-26 20:00:52 0 浏览量 回答数 0

回答

The connection has timed out The server at archive.eclipse.org is taking too long to respond. The site could be temporarily unavailable or too busy. Try again in a few moments. If you are unable to load any pages, check your computer's network connection. If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

爵霸 2019-12-02 02:39:23 0 浏览量 回答数 0

回答

Re:umount在/usr下面的硬盘,提示device is busy,杀掉这些进程是否会影响系统 .. 楼主您好, 抱歉延时回复。 同时,听到您已经解决了问题,很高兴。 感谢您选择了阿里云的产品。

dongshan8 2019-12-02 01:47:25 0 浏览量 回答数 0

问题

tomcat down掉SEVERE: All threads (150) are currently busy问题

落地花开啦 2019-12-01 19:34:49 1598 浏览量 回答数 1

问题

数据盘扩容后怎么挂载?无法卸载,显示正忙。

weincheng 2019-12-01 21:59:24 1825 浏览量 回答数 2

回答

和服务器一起买的磁盘似乎不能释放的。 卸载当然是可以的,但是问题是释放,释放后才能不给钱。 卸载只要: 1、磁盘没有busy状态,也就是操作状态。 先umount  然后修改磁盘fstab 保存 重启。 然后进入控制台,卸载磁盘,释放磁盘。ok了

玩站网 2019-12-02 00:17:21 0 浏览量 回答数 0

问题

nginx站点经常无缘无故504超时,每次重启服务器才正常几分钟又504了

秒秒互动 2019-12-01 19:25:38 1308 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播