摘要:
MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括 阅读全文
摘要:
1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。而实际的Linux网络层协议是参照了OSI标准,但是它实现为4层:应用层,传输层,网络层,网络接口层。OSI的多层对应到了实际实现中的一层。我们最为关 阅读全文
摘要:
1. IO处理过程 磁盘IO经常会成为系统的一个瓶颈,特别是对于运行数据库的系统而言。数据从磁盘读取到内存,在到CPU缓存和寄存器,然后进行处理,最后写回磁盘,中间要经过很多的过程,下图是一个以write为例的 Linux 磁盘IO子系统的架构: 可以看到IO操作分成了四个层面: 1)文件系统缓存: 阅读全文
摘要:
Linux的文件系统有点像MySQL的存储引擎,它支持各种各样的文件系统。它最上层是通过 virtual files system虚拟文件系统作为一个抽象接口层来对外提供调用的。然后下层的各种文件系统实现这些调用接口就行了。 1. Linux 中的 日志文件系统和非日志文件系统 文件内容的修改涉及到 阅读全文
摘要:
进程的运行,必须使用内存。下图是Linux中进程中的内存的分布图: 其中最重要的 heap segment 和 stack segment。其它内存段基本是大小固定的。注意stack是向低地址增长的,和heap相反。另外进程的内存地址从0开始,是因为使用的是虚拟内存。所以存在虚拟内存到物理内存的映射 阅读全文
摘要:
一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置;另一个层面是从操作系统的层面和硬件的层面来进行调优。操作系统的层面的调优,一般要先定位到是那种资源出现瓶颈——CPU、 内存、硬盘、网络,然后入手调优。所以其实My 阅读全文