理解Linux操作系统——分析性能瓶颈

学习自《Linux性能分析》

识别瓶颈


快速调优策略:

  1. 认识你的系统。
  2. 备份系统。
  3. 监控和分析系统性能。
  4. 缩小瓶颈范围,找到根源。
  5. 通过每次只修改一个地方来解决瓶颈问题。
  6. 回到第3步直到对系统的性能满意为止。

应该记录下调优的操作,特别是对性能有影响的操作。


Read more...

2015-04-29

理解Linux操作系统——性能度量

学习自《Linux性能分析》

处理器度量


  • CPU utilization: 如果该值超过80%持续一段周期时间,有可能是处理器瓶颈。
  • User time: 通常都希望该值越高越好,因为这表明系统在做更多的实际工作。
  • System time: 包括了内核操作和中断处理时间,该值应该尽量小。
  • Waiting: 花在等待I/O操作出现的CPU时间,该值应该尽量小。
  • Idle time: CPU空闲时间。
  • Nice time: 花在re-nicing改变进程执行顺序和优先级的时间。
  • Load average: 与两个数值密切相关,在等待运行队列的进程数和等待uninterruptible task完成的进程数。该数值应该不大于CPU核数。
  • Runable processes: 该值不应该超过CPU核数的10倍。
  • Blocked: 进程因为需要等待I/O操作的完成而无法执行。Blocked processes值过大,可能存在I/O瓶颈。
  • Context switch: 该值应该尽量小。
  • Interrupts: 包括硬中断和软中断,该值过高表明可能软件、内核或驱动存在瓶颈。注意CPU clock产生的中断也是一部分。

Read more...

2015-04-27

LVS DR/TUN real server VIP配置

在LVS的DR/TUN模式中,需要在real server上配置与LVS Director相同的VIP,这样real server才能接受和处理LVS Director转发过来的数据包。

但是这样一个网络内就有多台主机拥有VIP,当有数据包的目的IP地址是VIP时,该传输给那台主机?显然我们希望是由LVS Director接收。

那么就相当于real server需要对其他主机隐藏自己拥有VIP的事实,这可以通过ARP机制实现:当real server接收到目的IP地址是VIP的ARP广播请求包时,不做出回应。

现在的Linux内核支持通过两个参数配置网卡接口对ARP的请求和响应做出不同的处理:

  1. arp_announce: 在ARP请求数据包中该包含哪个源IP地址定义不同的限制级别。
  2. arp_ignore: 对ARP请求包中目的IP地址定义不同的限制级别。

Read more...

2015-04-25

理解Linux操作系统——file system、I/O subsystem、Network subsystem

学习自《Linux性能分析》

虚拟文件系统


Virtual Files System (VFS)是位于用户进程和各类Linux文件系统实现之间的抽象接口层。

vfs


Read more...

2015-04-22

理解Linux操作系统——Process和Memory

学习自《Linux性能分析》

Linux 进程管理


Process:an instance of execution that runs on a processor.

Linux操作系统通过进程描述符task_struct结构体管理进程。

process task_struct


Read more...

2015-04-20

Storm 基础知识

官方手册:Storm Manual

Storm Cluster 集群


节点:快速失败、无状态

  • master node: Nimbus,负责分发代码到集群中,为机器分配工作,监控异常。
  • worker node: Supervisor,监听Nimbus为其分配工作,运行工作进程。
  • Nimbus和Supervisor之间的交互通过Zookeeper集群协调,它们的状态都保存在Zookeeper或者本地磁盘上。

storm cluster


Read more...

2015-04-19

Keepalived避免无用的failover

通常情况下,当主挂掉时,从会自动切换为主。当主上的服务恢复时,则会再次抢占成为主,这里就发生了一次不必要的failover。

为了解决上述情况,可以在主的配置中vrrp_instance增加nopreempt。

实验


注意:确保实验机器防火墙不会过滤掉vrrp协议的数据包。


Read more...

2015-04-19