一.上节回顾 上一节,我带你学习了,如何使用 USE 法来监控系统的性能,先简单回顾一下. 系统监控的核心是资源的使用情况,这既包括 CPU.内存.磁盘.文件系统.网络等硬件资源,也包括文件描述符数.连接数.连接跟踪数等软件资源.而要描述这些资源瓶颈,最简单有效的方法就是 USE 法. USE 法把系统资源的性能指标,简化为了三个类别:使用率.饱和度以及错误数. 当这三者之中任一类别的指标过高时,都代表相对应的系统资源可能存在性能瓶颈. 基于 USE 法建立性能指标后,我们还需要通过一套完整的监…
一.上节回顾 上一节,我带你学习了 Linux 网络的基础原理.简单回顾一下,Linux 网络根据 TCP/IP模型,构建其网络协议栈.TCP/IP 模型由应用层.传输层.网络层.网络接口层等四层组成,这也是 Linux 网络栈最核心的构成部分. 应用程序通过套接字接口发送数据包时,先要在网络协议栈中从上到下逐层处理,然后才最终送到网卡发送出去:而接收数据包时,也要先经过网络栈从下到上的逐层处理,最后送到应用程序. 了解 Linux 网络的基本原理和收发流程后,你肯定迫不及待想知道,如何去观察网…
一.引子 在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数.这时候你可能会想,一条 select count(*) from t 语句不就解决了吗? 但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢.然后你可能就想了,MySQL 怎么这么笨啊,记个总数,每次要查的时候直接读出来,不就好了吗. 那么今天,我们就来聊聊 count(*) 语句到底是怎样实现的,以及 MySQL 为什么会这么实现.然后,我会再和你说说,如果应用中有这种频繁变更并需要…