关于腰间盘突出

什么是椎间盘突出

我们脊柱是由一堆称之为椎骨的骨头一个一个叠起来构成的。这些叠起来的骨头之间有一些起到缓冲作用的具有弹性的椎间盘。弹性椎间盘有一个比较柔软的类似果冻的中心或者髓核,这个“果冻”被坚韧的具有弹性的外壳包裹。如果这些弹性的椎间盘的外部出现撕裂,柔软的内部会滑溜出来,这就会导致椎间盘突出,也被称之为椎间盘滑出或者椎间盘撕裂。这种椎间盘损伤可能会刺激附近的神经,从而导致手臂或腿部疼痛、麻木或无力。

Java程序中出现大量CPU消耗问题的排查

项目中可能会出现消耗大量 CPU 的情况(如下图),当我们发现这种情况应该怎么排查呢?

image-20230521232200245

top

首先使用top命令查看所有运行的进程占用资源的情况。可以看到上图中PID为14646的Java进程的CPU使用率达到了799.6%,这明显是有问题的。那我们应该怎么定位那一段代码出问题了呢?

jstack -p pid

使用 top命令可以得到进程的PID,上述Java程序的PID是14646,我们运行JDK自带的命令jstack命令 dump 正在运行的Java进程堆栈。(如下图)

image-20230521230107816

我们根据top命令看到的线程的id(十进制)转为 十六进制,然后在上图中找到对应的堆栈,然后根据堆栈找到代码中的行号。

这个简单的例子演示了jstack -p pid 的使用方法以及生产环境中排查死锁、死循环等问题。