- 博客(8)
- 收藏
- 关注
原创 SQL UTC时间转换为可读的时间
select (select date '1970-01-01' + (to_number(f.SAVEDATE) / 86400000) from dual) form_estimated_saveDate FROM xxx f;
2014-11-25 11:44:13
862
原创 误用线程池ThreadPoolExecutor导致堆外内存增加宕机
最近遇到一个问题原本虚拟机分配了2G的堆大小,发现OS用top命令看,进程的VIRT内存一直增加,而且RES也一直往上增加,最后前者达到了16G,后者达到了8G,最后内存整个进程宕调后来尝试重现问题,打了JAVA线程堆栈,发现堆栈里面大量的pool的线程,多达上万个。就是有个人写代码,误用JAVA线程池,每次用都新new一个线程池ThreadPoolExecutor,最后自己写代码...
2014-11-25 11:43:40
1549
原创 如何分析JAVA内存DMP
1.1 jmap –heap PID命令这个是打印java进程jvm内存分布跟使用情况,可以根据这个来分析是否需要导内存dmp来分析 1.2 部署MAT1.2.1 配置PATH 环境变量 jdkroot 用户编辑vi /etc/profile 退出当前shell,重新登录生效1.2.2 更改配...
2014-04-02 21:24:53
1699
1
原创 如何分析JAVA 线程堆栈
线程堆栈是个很强大的东西,可以看到进程正在运行的所有线程信息1.1 kill -3 PID 命令堆栈信息会打到进程的后台启动nohup.out的文件里面1.2 jboss配置前台请求线程数:jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/server.xml1.3 关注前台发起的线程红色部分的线程是前台...
2014-04-02 21:06:55
145
原创 java wait notify
import java.util.ArrayList;import java.util.List;public class WaitNotify extends Thread { private String flag="false"; private List list=new ArrayList(); public static void mai...
2014-04-02 21:01:40
131
原创 文件的suid ,sgid, sticky
suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID。sgid(set Group ID,set GID)意思也是一样,只要把上面的进程拥有者改成进程组就好了。如果一个文件被设置了suid或sgid位,会分别表现在所有者或同组用户的权限的可执行位上。...
2014-01-18 04:34:24
122
原创 linux的分段
linux 更倾向于使用分页方式,不怎么喜欢使用分段,分段可以给美国进程分配不同的线性地址空间,分页可以把同一个线性地址隐射到不同的物理地址(这跟linlux的分页机制有关)因为这样更容易跨平台,但是由于分段是硬件就支持的,linux还是使用了分段;用户代码段用户数据段内核代码段内核数据段关注的Base字段都是0x00000000,G位为1,用户态的DPL为...
2013-10-20 14:41:04
90
原创 80x86逻辑地址到线性地址的转换
先梳理一下概念:逻辑地址是由16位的段选择符和32位的偏移量组成;段选择符是有13为的index,1位TI,2位RPL组成;段选择符存在CPU的段寄存器中;段描述符放在全局描述符标GDT或者局部描述符LDT中;段描述符是8字节64位,里面有Base字段是该段的首字节的线性地址;(notice)段描述符原始是存在GDT 或者 LDT中的,但是80x86...
2013-10-20 13:09:52
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人