1
2
3
|
EAX=0×00000000,EBX=0x0375dd84,ECX=0×00000000,EDX=0×00000000
ESP=0xb72f0fa0,EBP=0xb72f0fb8,ESI=0×00000000,EDI=0x0a6c1800
EIP=0x03568cf4,EFLAGS=0×00010246,CR2=0×00000010
Top of Stack: (sp=0xb72f0fa0)
0xb72f0fa0: 00000000004022500040217f 0375dd84
0xb72f0fb0: 000000000a6c1800 b72f0fe8 0356c2c0
0xb72f0fc0: 000000000a6c1800 b72f0fe8 003b3e77
0xb72f0fd0: 003e6c8b 0a1a70d0 0a193358 0375dd84
0xb72f0fe0: 0a276418 0a276418 b72f1048 03536c56
0xb72f0ff0: 0acad000 0b3ca978 0000000c 00dd0674
0xb72f1000: 000000030a2c7d50 b72f1038 0000330c
0xb72f1010: ffffffff ffffffff0000000100000001
Instructions: (pc=0x03568cf4)
0x03568cd4: 8914248975f889d6897d fc89c7 e8 7e 1b
0x03568ce4: ea ff8934248987d4020000e83000ea ff
0x03568cf4: 8b4010893c24c7442408000000008987
0x03568d04: d00200008b838824000089442404e8 dd
Register to memory mapping:
EAX=0x00000000isan unknown value
EBX=0x0375dd84: <offset 0x394d84>in/usr/lib/libgtk-x11-2.0.so.0 at 0x033c9000
ECX=0x00000000isan unknown value
EDX=0x00000000isan unknown value
ESP=0xb72f0fa0ispointing into the stackforthread: 0x09f30c00
EBP=0xb72f0fb8ispointing into the stackforthread: 0x09f30c00
ESI=0x00000000isan unknown value
EDI=0x0a6c1800isan unknown value
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
Stack: [0xb72a8000,0xb72f9000], sp=0xb72f0fa0, free space=291k
Native frames: (J=compiled Java code, j=interpreted, Vv=VMcode,C=native code)
C [libgtk-x11-2.0.so.0+0x19fcf4] __float128+0x19fcf4
C [libgtk-x11-2.0.so.0+0x1a32c0] __float128+0xc0
C [libswt-pi-gtk-3738.so+0x33f6a] Java_org_eclipse_swt_internal_gtk_OS__1Call+0xf
J org.eclipse.swt.internal.gtk.OS._Call(III)I
J org.eclipse.swt.internal.gtk.OS.Call(III)I
Java frames: (J=compiled Java code, j=interpreted, Vv=VMcode)
J org.eclipse.swt.internal.gtk.OS._Call(III)I
J org.eclipse.swt.internal.gtk.OS.Call(III)I
j org.eclipse.swt.widgets.Widget.fixedSizeAllocateProc(II)I+5
j org.eclipse.swt.widgets.Display.fixedSizeAllocateProc(II)I+17
v ~StubRoutines::call_stub
线程栈。包含了地址、栈顶、栈计数器和线程尚未使用的栈信息,由于栈可能非常长,打印的长度有限制,但是至少本地栈和Java栈都打印出来了(很多时候本地栈打印不出来,但是Java栈一般都能打印出来)。从中可以看到,Eclipse的虚拟机崩溃了。
1
2
3
4
|
Java Threads: ( => current thread )
0x0b4c1000 JavaThread”Worker-247″[_thread_blocked, id=25417, stack(0x741bc000,0x7420d000)]
0x0a300c00 JavaThread”Worker-246″[_thread_blocked, id=25235, stack(0x7d30c000,0x7d35d000)]
虚拟机状态。包括:
-
not at a safepoint:正常运行状态;
-
at safepoint:所有线程都因为虚拟机等待状态而阻塞,等待一个虚拟机操作完成;
-
synchronizing:一个特殊的虚拟机操作,要求虚拟机内的其它线程保持等待状态。
VMMutex/Monitor currently owned by a thread: None
PSYoungGen total149056K, used125317K[0xa9700000, 0xb41a0000, 0xb41a0000)
eden space123520K,95% used [0xa9700000,0xb0ac0de0,0xb0fa0000)
from space25536K,26% used [0xb28b0000,0xb2f50748,0xb41a0000)
to space25600K,0% used [0xb0fa0000,0xb0fa0000,0xb28a0000)
PSOldGen total261248K, used239964K[0x941a0000, 0xa40c0000, 0xa9700000)
object space261248K,91% used [0x941a0000,0xa2bf7018,0xa40c0000)
PSPermGen total163328K, used130819K[0x841a0000, 0x8e120000, 0x941a0000)
object space163328K,80% used [0x841a0000,0x8c160c40,0x8e120000)
Dynamic libraries:
00101000-00122000 r-xp 00000000 08:01 3483560 /usr/lib/libjpeg.so.62.0.0
00122000-00123000 rwxp 00020000 08:01 3483560 /usr/lib/libjpeg.so.62.0.0
00125000-00130000 r-xp 00000000 08:01 9093202 /lib/libgcc_s-4.1.2-20080825.so.1
00130000-00131000 rwxp 0000a000 08:01 9093202 /lib/libgcc_s-4.1.2-20080825.so.1
... ...
内存映射。这些信息是虚拟机崩溃时的虚拟内存列表区域。在定位崩溃原因的时候,它可以告诉你哪些类库正在被使用,位置在哪里,还有堆栈和守护页信息。就以列表中第一条为例说明:
-
00101000-00122000:内存区域
-
r-xp:权限,r/w/x/p/s分别表示读/写/执行/私有/共享
-
00000000:文件内的偏移量
-
08:01:文件位置的majorID和minorID
-
3483560:索引节点号
-
/usr/lib/libjpeg.so.62.0.0:文件位置
每一个lib都有两块虚拟内存区域——代码和数据,它们的权限不同,代码区域是r-xp;数据区域是rwxp。守护页(guard page)由权限为--xp和rwxp的一对组成。
1
2
3
4
5
6
7
8
|
VMArguments:
jvm_args: -Dosgi.requiredJavaVersion=1.5-XX:MaxPermSize=256m -Xms40m -Xmx512m -Dorg.eclipse.swt.browser.XULRunnerPath=''
java_command: /.../eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar -os linux -ws gtk -arch x86 -showsplash -launcher /.../eclipse/eclipse -name Eclipse ...
Launcher Type:SUN_STANDARD
Environment Variables:
PATH=...
DISPLAY=:0.0
Signal Handlers:
SIGSEGV: [libjvm.so+0x726440], sa_mask[0]=0x7ffbfeff, sa_flags=0×10000004
SIGBUS: [libjvm.so+0x726440], sa_mask[0]=0x7ffbfeff, sa_flags=0×10000004
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
OS:Red Hat Enterprise Linux Client release 5.4 (Tikanga)
uname:Linux 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686
libc:glibc 2.5 NPTL 2.5
rlimit: STACK 10240k, CORE 0k, NPROC 65536, NOFILE 1024, AS infinity
load average:1.78 1.58 1.54
/proc/meminfo:
CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3
/proc/cpuinfo:
Memory: 4k page, physical 3631860k(155144k free), swap 5124724k(5056452k free)
Java的应用有时候会因为各种原因Crash,这时候会产生一个类似java_errorpid.log的错误日志。可以拿到了这个日志,怎样分析Crash的原因呢?下面我们来详细讨论如何分析java_errorpid.log的错误日志。一. 如何得到这个日志文件如果有一个严重的错误引起Java进程非正常退出,我们叫Crash,这时候会产生一个日志文件。缺省情况下,这个文件会产生在工作目
用于平台独立核心文件分析器的 Java 字节码反编译插件。
JVM
环境会出现很多
崩溃
。 在这种情况下,服务工程师更愿意了解明显看到故障的应用
方法
。 问题确定通常始于对
方法
结构的理解。 这在 JIT 编译器
崩溃
的情况下更为明显。 JIT 编译器中的任何故障通常都需要理解正在编译的字节码序列。 迄今为止,工程师一直通过研究和理解字节码来理解
方法
结构。 这个过程很乏味,而且会减慢调试的速度。 如果该
方法
的结构非常容易获得,则可以加快问题确定和
解决
的过程。 这个核心文件分析工具的反编译插件的想法,提出了上述问题的
解决
方案。 可以使用核心文件分析工具定义的 API 读取
方法
的字节码。 然后可以处理这些字节码和其他
方法
信息以生成 Java 代码。 在这个过程中,我们从字节码的基于堆栈的性质转变为 Java 代码。 这种转变是通过三步过程实现的。 前两个进程定义了它们自己的中间语言并使用它
Java的应用有时候会因为各种
原因
Crash,这时候会产生一个类似java_errorpid.log的错误日志。可以拿到了这个日志,怎样分析Crash的
原因
呢?下面我们来详细讨论如何分析java_errorpid.log的错误日志。
一. 如何得到这个日志文件
如果有一个严重的错误引起Java进程非正常退出,我们叫Crash,这时候会产生一个日志文件。缺省情况下,这个文件会产生在工作目录下。但是...
或者在创建对象时(例如
方法
)
在插件的未来迭代中,可能支持仅在第一次调用该
方法
时才支持初始化。
因此,由于这个插件不能改变javac解析器,只能改变随后生成的抽象语法树,所以我求助于注解来达到这个目的。
注释是@Persistent(可以说不是最好的名字,但没有更好的主意.....
人工智能+智能运维平台
解决
方案 大数据 云平台 ——用人工智能点亮您的IT数据 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第1页。 1.从人工到人工智能 2.用人工智能点亮您的IT数据 3.迈出AIOps的第一步 目 录 Contents 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第2页。 Part 1 从人工到人工智能 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第3页。 当前运维和业务团队面临的困境 不是没有数据,而是数据太多 不是不想分析,而是无从下手 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第4页。 从人工到人工智能 挖掘海量数据的业务价值 统一大数据分布式处理技术 智能算法与机器学习 业务系统将要发生什么? 主动响应的预防预测性管理 降低系统低效对业务的影响 多种分散独立监控工具 专业化专家型人才 业务系统已经发生了什么? 被动响应的故障恢复性管理 人工运维 AIOps 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第5页。 什么是AIOps AIOps,即基于人工智能的IT运维(Artificial Intelligence for IT Operations) ,是由Gartner定义的IT运维管理新类别。 AIOps将服务管理、性能监测、自动化结合在一起,以实现持续洞察和改进的目标,并由大数据和机器学习技术进行支撑。 机器学习 大数据 平台 AIOps 商业价值 监测 (观察) 服务管理 (交互) 自动化 (行动) 持 续 察 洞 持 续 洞 察 持 续 洞 察 From Gartner's Report 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第6页。 AIOps的四个核心能力 AIOps 对海量数据进行存储 通过智能算法在数据提取时和存储后进行分析 从不同的数据源中获取数据 对海量数据进行高效访问 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第7页。 AIOps的技术栈 可视化 机器学习 算法 分析 计算 大数据 数据 事件 日志 监控 工单 任务 全量,海量,多样性,复杂性IT数据 集中统一管理,历史数据存储,实时数据存储 数据建模,模式识别,趋势识别,故障隔离 智能化选择,异常检测,异常定位,根因分析 算法自我修改演进,新算法创建 多维度,个性化,角色化,场景化展示 数据清洗,去重,过滤,关联,生成新数据 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第8页。 AIOps的核心价值 故障发现 故障规避 故障止损 故障修复 异常检测 异常定位 根因分析 异常预测 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第9页。 AIOps将在5-10年内成为ITOM的主流技术 From Gartner's Report 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第10页。 Part 2 用人工智能点亮您的IT数据 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第11页。 OneAPM智能运维平台
解决
方案 服务器数据 存储数据 网络数据 应用数据 用户体验数据 流量数据 日志数据 交易数据 任意IT数据 OneAPM AIOps 大数据实时多维分析 机器学习 大规模事务处理 海量数据实时接入 服务分析 深度挖掘 场景可视化 多维指标告警 数据建模 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第12页。 OneAPM智能运维平台的五个能力层次 发现 接入 存储 整合 梳理 关联 智能 分析 多维 展示 从哪里来 到哪里去 IT数据 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第13页。 全栈IT数据发现与接入篇 人工智能+智能运维平台
解决
方案(1)全文共45页,当前为第14页。 全栈IT数据的采集范围 监控对象 采集数据 IT系统 客户端 数据库 虚拟化 中间件 SaaS 传统架构 业务层 应用软件层 基础设施层 业务系统 云架构 硬件设备 PaaS IaaS 交易 业务流程 浏览器 移动APP 应用/微服务 应用代码 数据库服务 中间件服务 网络流量包 日志 虚拟化 网络 主机 机房环境 交易量 交易金额 交易成功率 页面加载时间 浏览器类型 用户IP 页面加载错误率 CDN质量 应用响应时间 应用吞吐量 应用错误率 单个服务响应时间 单个服务吞吐量 单个服务错误率 交易错误率 交易处理时间 …… APP页面响应时间 APP
崩溃
率 APP网络请求时间 APP H5页面性能
JVM
内存利用率 服务器时延 SQL语句执行时间 连接池数量 缓冲区命中率 告警 …… 虚拟机数量 主机数量 CPU利用率 内存利用率 丢包率 平均建链时间 网络流量 磁盘可用容量 电源
Java代理,用于调试LWJGL3程序以防止
JVM
崩溃
并
解决
OpenGL错误。
由于用户程序中的某些错误可能导致
JVM
崩溃
而没有有意义的错误消息,因此LWJGL 3已针对极端速度进行了调整,但以健壮性为代价。
从下载lwjglx-debug-1.0.0.jar文件,或按照下面“构建”部分中的说明构建此Maven项目。
将lwjglx-debug-1.0.0.jar到任何目录(此后称为<cwd> )
使用-javaagent:<cwd>/lwjglx-debug-1.0.0.jar启动LWJGL3应用程序
使用命令行时,它应类似于: java -javaagent:<cwd>/lwjglx-debug-1.0.0.jar -cp all/the/jars your.main.Class
使用Eclipse时,用main()
方法
右键单击您的类,转到“运行方式>运行配置
Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA虚拟机。JAVA程序启动时
JVM
会分配一个初始内存和最大内存给程序。当程序需要的内存超出内存的最大值时虚拟机就会提示内存溢出,并且导致应用服务
崩溃
。
一、常见的Java内存溢出有以下三种:
1. java.lang.OutOfMemoryError: Java heap space 即
JVM
Heap溢出
解释说明:
JVM
在启动的时候会自动设置
JVM
Heap的值,
JVM
堆的设置是指java程序运行过程中
JVM
可以调配使用的内存空间的设置。其初始空间默认是物理内存的1/64,最大空间不可超过物理内存。
JVM
提供-Xmn
Hiphop 需要在centos 6.2以上支持可以,并且通过yum安装支持包比较好;
然后 cmake时,需要单独创建一个文件夹(如build),不要跟之前的文件混淆,否则编译好的内容会出现错误。
2. 动态加载
1. 初始(NEW):新创建了一个线程对象,但还没有调用start()
方法
。
2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。
线程对象创建后,其他线程(比如main线程)调用了该对象的start()
方法
。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状...
1. 增加
JVM
的内存空间,可以通过修改启动参数中的-Xmx和-Xms参数来增加
JVM
的最大和最小内存空间。
2. 优化程序代码,减少内存的占用量,可以通过使用缓存,避免重复创建对象等技巧来减小程序内存的占用。
3. 使用内存映射文件,将一部分数据存储在磁盘上,减少内存的占用。
4. 升级硬件设备,增加物理内存空间,可以通过增加内存条的方式来增加物理内存空间,从而
解决
内存不足的问题。
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --data-root="/home/docker/lib/docker"
[/code]
参考:https://stackoverflow.com/questions/24309526/how-to-change-the-docker-image-installation-directory/34731550#34731550
Redis+Lua脚本实现分布式限流(Nginx+Lua IP限流)
隔壁寝室老吴:
Lucene索引存储结构
bokerr:
|
|
|
|
|