Code For Colorful Life
使用Dockers管理个人开发环境
当我们新安装Linux系统或者登陆了一个非自己环境的Linux系统时,通常都得做许多繁杂而又重复的工作,安装各种软件、搭建开发环境等,为了解决这个问题,我将使用Docker来管理自己的开发环境。
简单版的在线docker介绍:Docker —— 从入门到实践
基础镜像
自己搭建了一个CentOS 7的基础开发镜像centos-dev:base-v1.2
,修改软件源为163源,装了各种常用软件以及个人配置:git、vim、zsh等等。
Read more...
2015-05-04
理解Linux操作系统——分析性能瓶颈
学习自《Linux性能分析》
识别瓶颈
快速调优策略:
- 认识你的系统。
- 备份系统。
- 监控和分析系统性能。
- 缩小瓶颈范围,找到根源。
- 通过每次只修改一个地方来解决瓶颈问题。
- 回到第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的请求和响应做出不同的处理:
- arp_announce: 在ARP请求数据包中该包含哪个源IP地址定义不同的限制级别。
- arp_ignore: 对ARP请求包中目的IP地址定义不同的限制级别。
Read more...
2015-04-25
理解Linux操作系统——Process和Memory
学习自《Linux性能分析》
Linux 进程管理
Process:an instance of execution that runs on a processor.
Linux操作系统通过进程描述符task_struct结构体管理进程。
Read more...
2015-04-20
Storm 基础知识
官方手册:Storm Manual
Storm Cluster 集群
节点:快速失败、无状态
- master node: Nimbus,负责分发代码到集群中,为机器分配工作,监控异常。
- worker node: Supervisor,监听Nimbus为其分配工作,运行工作进程。
- Nimbus和Supervisor之间的交互通过Zookeeper集群协调,它们的状态都保存在Zookeeper或者本地磁盘上。
Read more...
2015-04-19