摘要: 查看线程: 在performation_schema下,有一个threads表。 首先是IO线程 控制参数是innodb_write_io_threads。整个16应该没问题。 而innodb_read_io_threads,就不用动了,write是异步的,read是同步的。 page_cleane 阅读全文
posted @ 2022-06-27 22:48 拿什么救赎 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 参数:innodb_buffer_pool_size。我们线上基本上设置50-75%。设过80,发现OOM有点严重。 不过这个值肯定是越大,性能越好。 如何在缓冲池中标记一个页? (space,page_num) space指的是你ibd文件的编号。在information_shcema中 inno 阅读全文
posted @ 2022-06-27 16:55 拿什么救赎 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 记录下MySQL的表空间。 在MySQL官方文档中,很多行(row)记录在页(page)中,页记录在区(extent)中,区记录在段(segment)中,段则在表空间中。表空间就是tablespace。 其中,区是最小的空间申请单位,通常一次性申请4个区。区的固定大小是1M。以MySQL默认的16k 阅读全文
posted @ 2022-06-27 00:30 拿什么救赎 阅读(1298) 评论(0) 推荐(0) 编辑
摘要: 之前说了磁盘的压测。也就顺便记录下MySQL的压测。 show global status like '%Question%';这是一个累加的值。记录MySQL启动到现在的查询数。 show global status like '%Uptime%';累加值,记录MySQL启动的秒数。 直接stat 阅读全文
posted @ 2022-06-26 23:25 拿什么救赎 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 记录一下用iostat对磁盘进行的测试。 测试用例:iostat -xm 3 结果的上半部分是cpu的平均数据。 通常是user所占的cpu会多一点。 %idle表示cpu空闲时间。 device表示目前的设备。 rrqm/s 每秒发起合并读的请求。每秒这个设备相关的读取请求有多少被Merge了(当 阅读全文
posted @ 2022-06-26 22:17 拿什么救赎 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 本篇文章,想主要研究下beforesleep和aftersleep两个阶段redis究竟干了什么。 aftersleep只是处理module,可以忽略。 主要研究beforesleep。 1.刷新zmalloc_used变量和server.stat_peak_memory变量。很简单,就是当前的us 阅读全文
posted @ 2022-06-08 22:57 拿什么救赎 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 本来这章的标题是想写string类型的操作的。 但为什么改成SDS了哪? 因为我之前粗俗的认为redis只有string类型有用到SDS。但是在写这篇博客之前,稍微翻了下其他地方的源码,发现redis用到SDS的地方实际上是很多的。 所以将SDS认为只是string类型的底层结构其实是狭隘的。 所以 阅读全文
posted @ 2022-05-19 00:13 拿什么救赎 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 本章主要讨论在client连接到server时。server在ae过程中是如何处理的。 主要讨论的是接口函数。 大家可以把断点打在networking/acceptTcpHandler()下 以上函数在ae.c下如下部分调用: if (!invert && fe->mask & mask & AE_ 阅读全文
posted @ 2022-04-19 23:54 拿什么救赎 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 书接上回,redis进入ae事件监听了。 相关的c文件都以ae开头,比如ae.c ae_epoll.c ae_ecport.c ae_select.c ae_kqueue.c ae相关的结构体在server.h的redisServer下的aeEventLoop结构体(eventloop)。 /* S 阅读全文
posted @ 2022-04-12 23:58 拿什么救赎 阅读(280) 评论(0) 推荐(0) 编辑
摘要: redis版本:6.2.6 为了调试方便,配置文件绝大部分保持一致,只修改如下: daemonize no。 关闭后台运行。这会影响debug,因为在server.c/6312行会进入daemonize(),然后执行setsid(),这样会导致debug退出。 然后将断点打在server.c/615 阅读全文
posted @ 2022-04-10 00:59 拿什么救赎 阅读(141) 评论(0) 推荐(0) 编辑