- 博客(8)
- 资源 (20)
- 问答 (1)
- 收藏
- 关注
原创 JVM的一般参数设置
内存区域大小XX:+UseG1GC:用于指定 JVM 使用的垃圾回收器为 G1,尽量不要靠默认值去保证,要显式的指定一个。-Xmx:设置堆的最大值,一般为操作系统的 2/3 大小。-Xms:设置堆的初始值,一般设置成和 Xmx 一样的大小来避免动态扩容。-Xmn:表示年轻代的大小,默认新生代占堆大小的 1/3。高并发、对象快消亡场景可适当加大这个区域,对半,或者更多,都是可以的。但是在 G1 下,就不用再设置这个值了,它会自动调整。-XX:MaxMetaspaceSize:用于
2020-05-20 11:17:58 888
原创 对象字节码看并发编程的底层实现
线程模型对于 Hotspot 来说,每一个 Java 线程,都会映射到一条轻量级进程中(LWP,Light Weight Process)。轻量级进程是用户进程调用系统内核所提供的一套接口,实际上它还需要调用更加底层的内核线程(KLT,Kernel-Level Thread)。而具体的功能,比如创建、同步等,则需要进行系统调用。这些系统调用的操作,代价都比较高,需要在用户态(User Mode)和内核态(Kernel Mode)中来回切换,也就是我们常说的线程上下文切换( CS,Context Swi
2020-05-20 10:42:28 112
原创 字节码结构
https://docs.oracle.com/javase/specs/jvms/se11/html/magic:魔数,用于标识当前 class 的文件格式,JVM 可据此判断该文件是否可以被解析,目前固定为 0xCAFEBABEmajor_version:主版本号。minor_version:副版本号,这两个版本号用来标识编译时的 JDK 版本,常见的一个异常比如 Unsupported major.minor version 52.0 就是因为运行时的 JDK 版本低于编译时的 JDK 版本.
2020-05-20 10:27:07 235
原创 jstat 常用参数
jstat -gcutil $pid 29365 1000 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 2.07 72.02 26.86 97.25 96.29 27 0.436 3 0.558 0.994 0.00 2.07 72.02 26.86 97.25 96.29 27 0.436 .
2020-05-20 09:44:16 972
原创 MySQL是怎么保证高可用的-学习记录
双M结构主备延迟主备切换可能是一个主动运维动作,比如软件升级、主库所在机器按计划下线等,也可能是被动操作,比如主库所在机器掉电在介绍主动切换流程的详细步骤之前,我要先跟你说明一个概念,即“同步延迟”。与数据同步有关的时间点主要包括以下三个主库 A 执行完成一个事务,写入 binlog,我们把这个时刻记为 T1;之后传给备库 B,我们把备库 B 接收完这个 binlog 的时刻记为 T2;备库 B 执行完成这个事务,我们把这个时刻记为 T3。所谓主备延迟,就是同一个事务,在备库执行完成的时.
2020-05-12 10:37:15 148
原创 MySQL是怎么保证主备一致的-学习记录
MySQL 主备的基本原理在状态 1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步过来,到本地执行。这样可以保持节点 B 和 A 的数据是相同的。当需要切换的时候,就切成状态 2。这时候客户端读写访问的都是节点 B,而节点 A 是 B 的备库在状态 1 中,虽然节点 B 没有被直接访问,但是我依然建议你把节点 B(也就是备库)设置成只读(readonly)模式。这样做,有以下几个考虑:有时候一些运营类的查询语句会被放到备库上去查,设置为只读可以防止误操
2020-05-12 10:14:45 217
原创 MySQL是怎么保证数据不丢的-学习
binlog 的写入机制binlog 的写入逻辑比较简单:事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache 写到 binlog 文件中.一个事务的 binlog 是不能被拆开的,因此不论这个事务多大,也要确保一次性写入。这就涉及到了 binlog cache 的保存问题系统给 binlog cache 分配了一片内存,每个线程一个,参数 binlog_cache_size 用于控制单个线程内 binlog cache 所占内存的大小。如果超过了这个
2020-05-12 09:46:03 278
原创 mysql-事务隔离级别
事务隔离级别SQL 标准的事务隔离级别包括:读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(serializable )读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。可重复读是指,一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。串行化,顾名思义是对
2020-05-11 10:00:55 194
expert+one-on-one+j2ee+development+without+ejb中文版.rar
2020-04-27
Eclipse如何导入web项目,导入后项目显示红叉,也无法在tomcat中运行
2015-01-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人