草庐IT

自动增长配置不合理导致的性能抖动

背景客户收到了SQL专家云告警邮件,在凌晨2点到3点之间带有资源等待的会话数暴增,请我们协助分析。现象 登录SQL专家云,进入活动会话的趋势分析页面,下钻到2点钟一个小时内的数据,看到每分钟的等待数都在100左右,2点15分时达到200。转到活动会话原始数据页面,看到大量会话都在等待,等待类型是LATCH_EX,等待资源是LOG_MANAGER,数据库都是MIIS****。SQL语句是INSERT、UPDATE、DELETE等写入的语句。 等待资源是LOG_MANAGER,说明数据库MIIS****的日志文件在发生变化。转到数据库空间页面,发现日志文件从2点钟开始增长,2点20时增长到90GB

自动增长配置不合理导致的性能抖动

背景客户收到了SQL专家云告警邮件,在凌晨2点到3点之间带有资源等待的会话数暴增,请我们协助分析。现象 登录SQL专家云,进入活动会话的趋势分析页面,下钻到2点钟一个小时内的数据,看到每分钟的等待数都在100左右,2点15分时达到200。转到活动会话原始数据页面,看到大量会话都在等待,等待类型是LATCH_EX,等待资源是LOG_MANAGER,数据库都是MIIS****。SQL语句是INSERT、UPDATE、DELETE等写入的语句。 等待资源是LOG_MANAGER,说明数据库MIIS****的日志文件在发生变化。转到数据库空间页面,发现日志文件从2点钟开始增长,2点20时增长到90GB

mysql之抖动

flush:就是把内存里的数据写入磁盘的过程。脏页:当内存数据页跟磁盘数据页内容不一致的时候。干净页:内存数据写入到磁盘后,内存和磁盘上的数据页的内容一致的时候。脏页和干净页都是在内存中。1、数据库的flush场景对应的redolog日志满了,系统会停止所有更新操作,把checkpoint往前推进,redolog日志留出空间继续写。对应的系统内存不足,当需要新的内存页,而内存不够用的时候,就要淘汰一些数据页,空出内存给别的数据页使用。如果淘汰的是脏页,就要先将脏页写到磁盘。InnoDB用缓冲池(bufferpool)管理内存,缓冲池中的内存页有3种状态:1、还没有使用的2、使用了并且是干净页3

mysql之抖动

flush:就是把内存里的数据写入磁盘的过程。脏页:当内存数据页跟磁盘数据页内容不一致的时候。干净页:内存数据写入到磁盘后,内存和磁盘上的数据页的内容一致的时候。脏页和干净页都是在内存中。1、数据库的flush场景对应的redolog日志满了,系统会停止所有更新操作,把checkpoint往前推进,redolog日志留出空间继续写。对应的系统内存不足,当需要新的内存页,而内存不够用的时候,就要淘汰一些数据页,空出内存给别的数据页使用。如果淘汰的是脏页,就要先将脏页写到磁盘。InnoDB用缓冲池(bufferpool)管理内存,缓冲池中的内存页有3种状态:1、还没有使用的2、使用了并且是干净页3

Android内存抖动(主要原因分析+6个优化小技巧)

内存抖动概念在程序里,每创建一个对象,就会有一块内存分配给它;每分配一块内存,程序的可用内存也就少一块;当程序被占用的内存达到一定临界程度,GC也就是垃圾回收器(GarbageCollector)就会出动,来释放掉一部分不再被使用的内存。Android里的View.onDraw()方法在每次需要重绘的时候都会被调用,这就意味着,如果你在onDraw()里写了创建对象的代码,在界面频繁刷新的时候,你就也会频繁创建出一大批只被使用一次的对象,这就会导致内存占用的迅速攀升;然后很快,可能就会触发GC的回收动作,也就是这些被你创建出来的对象被GC回收掉。[垃圾内存]太多了就被清理掉,这是Java的工作

Android内存抖动(主要原因分析+6个优化小技巧)

内存抖动概念在程序里,每创建一个对象,就会有一块内存分配给它;每分配一块内存,程序的可用内存也就少一块;当程序被占用的内存达到一定临界程度,GC也就是垃圾回收器(GarbageCollector)就会出动,来释放掉一部分不再被使用的内存。Android里的View.onDraw()方法在每次需要重绘的时候都会被调用,这就意味着,如果你在onDraw()里写了创建对象的代码,在界面频繁刷新的时候,你就也会频繁创建出一大批只被使用一次的对象,这就会导致内存占用的迅速攀升;然后很快,可能就会触发GC的回收动作,也就是这些被你创建出来的对象被GC回收掉。[垃圾内存]太多了就被清理掉,这是Java的工作