我终于要对运维小哥下手了linux
当我再次收到运维小哥的警告的时候,我醒悟了。ios
你觉得我又要去写 Bug ?centos
是的,这就是被运维恐吓的平常,在这个男人面前我就是个弟弟。网络
Bug 写的多了,总免不了要收到两条这样那样的小告警,因此我决定仍是本身学一些 Linux 优化的小知识,作到先发致人。运维
以前学习 Linux 命令的时候有学到 man 的使用,还有它的进阶版本 info 他能够更详细的查询命令手册ide
因此咱们掌握了它们以后就能够完成从无处下手到有迹可循的蜕变。工具
先从下面这张图开始搞起。学习
是否是有点懵逼,不要紧我也是。优化
咱们简单分析一下,咱们代码在系统上跑,最大的就是 CPU,内存,网络和磁盘I/O这四大部分。debug
咱们只要掌握几个经常使用的简单的命令知道这四个部分是否是有问题就行了。
CPU 最关键的就两个部分,系统的 CPU 使用率还有就是进程的使用率。
CPU 使用率
先看看 CPU 使用率咱们经常使用的是 top , 效果是下面这样的,简单明了。
us:表示用户空间程序的cpu使用率 sy:表示系统空间的cpu使用率,主要是内核程序。 ni:表示用户空间且经过nice调度过的程序的cpu使用率。 id:空闲cpu wa:cpu运行时在等待io的时间 hi:cpu处理硬中断的数量 si:cpu处理软中断的数量 st:被虚拟机偷走的cpu
这里再推荐另外一个小工具,dstat
可使用yum install dstat 安装
dtat 能够同时查看到 cpu,磁盘,网络的使用率,方便。
进程 CPU 使用率
查看进程就比较简单了,直接使用 ps 就能够了。
不少朋友觉得 Python 做为动态语言又有垃圾回收机制应该不会出现内存泄露的问题。
可是像下面这两种状况就容易致使内存泄露
1.对象一直被全局变量所引用, 全局变量生命周期长.
2.垃圾回收机被禁用或者设置成debug状态, 垃圾回收的内存不会被释放.
因此掌握内存使用率的查看也是颇有必要的。
最简单的使用 free 就能够查看系统内存的使用,剩余等参数
free 展现的是比较简单的内存信息,查看详细一点的信息可使用 vmstat
而进程的内存分析使用仍是上面提到过的 ps 和 top 两个命令,能够同时查看进程的 CPU 使用率和内存的使用率
当你收到内存不足的告警时,首先能够从监控系统中。找出占用内存最多的几个进程。而后,再根据这些进程的内存占用历史,观察是否存在内存泄漏问题。肯定出最可疑的进程后, 分析该进程的内存空间或者内存分配,最后弄清楚进程为 什么会占用大量内存
网络比较经常使用的工具是 iftop
一样也是先安装,在 centos 中须要先安装yum install epel-release
以后再安装yum install iftop就能够很顺利的安装上了。
使用 iftop 能够用来监控网卡的实时流量(能够指定网段)、反向解析IP、显示端口信息等。
中间的<= =>这两个左右箭头,表示的是流量的方向。 TX:发送流量 RX:接收流量 TOTAL:总流量 Cumm:运行iftop到目前时间的总流量 peak:流量峰值 rates:分别表示过去 2s 10s 40s 的平均流量
磁盘 IO 读写信息的查看我比较经常使用的是 iostat
仍是先安装,由于 iostat 是 sysstat 工具集的子集,因此咱们须要先安装 sysstat 。
yum install sysstat
接着能够用iostat -dx 查看磁盘的扩展信息
r/s 和 w/s 分别是每秒的读操做和写操做,而rKB/s 和wKB/s 列以每秒千字节为单位显示了读和写的数据量
上面就是我简单优化 linux 系统的第一步,简单经过工具就能够完成。
固然上面须要在运行环境上安装包的操做,最好和运维小哥了解学习下,不要本身瞎装,删库跑路的操做不是只存在与段子里。
你觉得到这就完了?
不,由于今天咸鱼恰饭了,因此准备送点小礼物给你们。
以前在交流群里抽了一份极客时间的 Linux 地图,本身忍不住也剁手了一份。
到手发现这个册子的内容也太全了,因此今天我准备抽两份送给你们,好东西要一块儿分享。