/images/hugo/avatar.png

4.18 监控系统构建

我们不能总是去当救火队员,更重要的是监控系统。

1. 监控系统

线上的系统 24 小时运转,有一些问题稍纵即逝,我们总不能 24 小时盯着。对于线上业务更重要的是一套完备的监控系统,把系统和应用程序的运行状况监控起来,并定义一系列的策略,在发生问题时第一时间告警通知。

4.16 C10K 与网络I/O模型

各种网络I/O模型是面试的必考考点,那么到底有哪些I/O模型,C10K 问题到底又是怎么解决的呢?

1. C10K问题

所谓 C10K 问题就是如何在单机中同时处理 1 万个请求(并发连接 1 万)的问题。从资源上来说,对 2GB 内存和千兆网卡的服务器来说,同时处理 10000 个请求,只要每个请求处理占用不到 200KB(2GB/10000)的内存和 100Kbit (1000Mbit/10000)的网络带宽就可以。所以,物理资源是足够的,接下来自然是软件的问题,特别是网络的 I/O 模型问题。

4.17 总结-内核线程

本节我们来看看,操作系统内都有哪些内核线程。

1. 内核线程

Linux 中,用户态进程的“祖先”,都是 PID 号为 1 的 init 进程(或者 systemd)。那么,内核态线程又是谁来管理的呢?

4.15 网络动态追踪

本节我们来介绍网络的动态追踪技术

1. Systemtab 磁盘网络

Dtrace/Systemtab 可以在内核和应用程序内部检查网络事件,包括

  1. 套接字连接
  2. 套接字I/O
  3. TCP事件
  4. 数据包重传
  5. 积压队列丢包
  6. TCP重传

这些功能能够支持工作负载特征归纳和延时分析

4.13 网络

本节我们讲解网络相关的操作系统原理。网络分析的目的除了改进网络延时和吞吐量外,另一个常见的任务是消除可能由丢包引起的延时异常。网络分析是跨硬件和软件的。硬件指的是物理网络包括网络接口卡,交换机,路由器和网管。软件指的是内核协议栈。