当前位置: 首页 > news >正文

重庆做网站建设公司哪家好免费咨询广东律师事务所

重庆做网站建设公司哪家好,免费咨询广东律师事务所,app设计与开发公司,网站建设的前期投入CPU 使用率在系统监控中是一个非常重要的指标。对于大多数 Web 应用来说#xff0c;它们往往是 IO 密集型的#xff0c;因此只会在某些时刻可能会出现 CPU 突然飙升的情况#xff0c;随后很快就恢复正常。然而#xff0c;当收到报警并想要排查问题时#xff0c;CPU 飙升的…CPU 使用率在系统监控中是一个非常重要的指标。对于大多数 Web 应用来说它们往往是 IO 密集型的因此只会在某些时刻可能会出现 CPU 突然飙升的情况随后很快就恢复正常。然而当收到报警并想要排查问题时CPU 飙升的情况可能已经过去无法直接查看当时 Java 进程内的线程堆栈信息。 为了解决这个问题本文实现了一个小工具它在 CPU 飙升时自动保存堆栈信息方便后续问题的追踪。 该工具实现了两个主要功能 当 CPU 使用率达到预设的阈值时自动保存当前 Java 进程的线程堆栈信息输出占用 CPU 使用率最高的线程 ID。 本文选择在 Linux 系统上实现这个工具因为大多数应用都是部署在 Linux 环境中本来想实现一个 MacOS 版本的脚本但捣鼓了半天由于格式以及函数存在差异所以就没继续纠结了 脚本如下 #!/bin/bash if [ $# -ne 1 ]; thenecho Usage: $0 j_pidexit 1 fij_pid$1 threshold90while true; docpu_info$(ps -p $j_pid -o %cpu)cpu_usage$(sed s/%//g $cpu_info)current_time$(date %Y-%m-%d %H:%M:%S)echo [-----$current_time] Current CPU Usage: $cpu_usage%if [ $(echo $cpu_usage $threshold | bc -q) -eq 1 ]; thenthread_id$(top -b -n 1 -H -p $j_pid | grep -E ^\s*[0-9] | sort -k9 -r | head -n 1 | awk {print $1})echo [-----$current_time] Detected! PID: $j_pid ; Thread ID: $thread_idjstack_output$(jstack -l $j_pid)jstack_filenamejstack_$(date %Y%m%d%H%M%S).txtecho $jstack_output $jstack_filenameecho [$current_time] jstack_filename: $jstack_filenamefisleep 10 done 可以看看效果这是模拟的消耗 CPU 的 Java 代码 /*** author dongguabai* date 2023-07-21 13:11*/ public class Test {public static void doSth() {while (true) {double x Math.random() * Math.random();}}public static void main(String[] args) {new Thread(new Runnable() {Overridepublic void run() {doSth();}}, highcpu_thread).start();} }执行 Java 代码 [rootMiWiFi-R4CM-srv javaTest]# javac Test.java [rootMiWiFi-R4CM-srv javaTest]# java Test执行脚本 [rootMiWiFi-R4CM-srv javaTest]# sh monitor.sh 9581 [-----2023-07-21 01:37:12] Current CPU Usage: 99.3% [-----2023-07-21 01:37:12] Detected! PID: 9581 ; Thread ID: 9590 [2023-07-21 01:37:12] jstack_filename: jstack_20230721013713.txt查看线程 ID 查看线程堆栈 Attach Listener #9 daemon prio9 os_prio0 tid0xb768fc00 nid0x25a0 waiting on condition [0x00000000]java.lang.Thread.State: RUNNABLEDestroyJavaVM #8 prio5 os_prio0 tid0xb7607400 nid0x256e waiting on condition [0x00000000]java.lang.Thread.State: RUNNABLEhighcpu_thread #7 prio5 os_prio0 tid0xb768ec00 nid0x2576 runnable [0xa4bb8000]java.lang.Thread.State: RUNNABLEat Test.doSth(Test.java:13)at Test$1.run(Test.java:20)at java.lang.Thread.run(Thread.java:748)可以看到效果还是可以的。 注意事项 在生产环境中使用此工具时需要注意以下几点 jstack 命令可能对系统性能产生一定影响需要谨慎使用并避免频繁执行 如果 Java 进程非常大有很多线程那么收集线程堆栈信息的操作可能会耗费较多的系统资源触发脚本时 Java 进程本身已经处于高负载状态运行jstack命令可能会导致 Java 进程的响应时间增加最好设置一个触发阈值频繁地运行 jstack 命令收集线程堆栈信息可能会在一定程度上增加系统负担 脚本最好保存在一个不容易被意外杀掉的地方以确保在 CPU 飙升时能正常执行。在应用刚启动的时候可能由于初始化等操作导致短暂的 CPU 飙升因此脚本可设置延迟执行避免误报。
http://www.hkea.cn/news/14489391/

相关文章:

  • 聊城网站制作信息wordpress特定主题
  • 网站运营的工作内容网络规划设计师书籍
  • 头像设计易做图网站秦皇岛开发区
  • 网站 运营 外包 每个月多少钱免费手机网站制作app
  • 网站如何安装dedecms厦门网站建设企业
  • 定制网站建设成本网页访客升级
  • 区域推广网站济南网站建设内容设计
  • 杭州哪里可以做网站推广零基础学网页设计
  • 网站的规划与建设_按时间顺序可以分为哪几个阶段?工业和信息化部
  • 网站积分程序怎么建设上海制作网页宣传
  • 模板建网站怎么做seo怎样在网上做环保设备网站
  • 生态环境工程公司网站建设专业网站建设品牌策划方案
  • 个人信息页面设计漂亮的网站网络服务投诉平台
  • 网站建设在那里接单给个网址谢谢了
  • 建站网站建设网站设计公司网站
  • 信息无障碍 网站建设惠州做网站优化
  • 搜索不到我的网站常用seo站长工具
  • 某网站网站的设计与实现wordpress 粉丝
  • 果洛州wap网站建设公司国外设计素材网站
  • 网站开发指南网站开发与设计实训报告总结
  • 台州网站怎么推广免费推广的手段和方法
  • 上海专业高端网站建设开元棋牌网站怎么做
  • 成品网站灬1688深圳市福田区香蜜湖街道
  • 如何选择佛山网站建设1688黄页网
  • 重庆中国建设银行招聘信息网站景区外文网站建设
  • 永久免费自助建站炫酷手机网站模板
  • 网站怎么做友情链接设计师 网站
  • 网站开发图形化软件台州高端网站设计
  • 小型网站有哪些windows优化大师兑换码
  • 做海报图片的网站企业级网站欣赏