Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
一、 通用命令
- 1、date :打印或者设置系统的日期和时间
- 2、 stty -a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、 Ctrl-Z等)
- 3、 passwd:用passwd -h查看
- 4、logout,login: 登录shell的登录和注销命令
- 5、 more, less, head tail: 显示或部分显示文件内容
6、 lp/lpstat/cancel, lpr/lpq/lprm: 打印文件
7、 chmod u+x:更改文件权限- 8、 rm -fr dir:删除非空目录
- 9、cp -R dir:拷贝目录
- 10、 fg jobid :可以将一个后台进程放到前台
11、 kill 的作用: send a signal to a process、 eg: kill -9 发送的是SIG_KILL信号,具体发送什么信号 可以通过 man kill 查看、
12、 ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session显示的sessionid, tpgid显示前台进程组id, comm显示命令名称)
网络相关采集项
计算方法:读取/proc/net/dev的内容,每个metric都附加有一组tag,形如iface=$iface,标明具体那个interface,比如eth0。metric中带有in的表示流入情况,out表示流出情况,total是总量in+out,支持的metric如下:
- net.if.in.bytes
- net.if.in.compressed
- net.if.in.dropped
- net.if.in.errors
- net.if.in.fifo.errs
- net.if.in.frame.errs
- net.if.in.multicast
- net.if.in.packets
- net.if.out.bytes
- net.if.out.carrier.errs
- net.if.out.collisions
- net.if.out.compressed
- net.if.out.dropped
- net.if.out.errors
- net.if.out.fifo.errs
- net.if.out.packets
- net.if.total.bytes
- net.if.total.dropped
- net.if.total.errors
- net.if.total.packets
vmstat 命令
可以使您能够在同一行看到系统的内存、CPU 等使用情况,通常您可以用该命令来查看CPU 的利用率和饱和度。
先连接两个概念:
CPU利用率:CPU利用率可以使用 vmstat通过从 100减去 id 或者 us与 sy之和来计算CPU 利用率
CPU饱和度:CPU 饱和度可以通过 vmstat 命令的“procs:r”来作为衡量标准,由于它是所有 cpu 运行队列的合计值,因此将 procs:r 除以 CPU 数目所得到的值可与其他服务器相比较。
任何持续不变的非零值都会引起性能的下降,但性能的下降是逐渐的。
“uptime”命令
来获得 CPU 平均负载的情况。平均负载的计算通常描述为可运行和运行线程的平均数目。
举例来说,如果一枚单CPU 服务器上有1 个运行线程占用了 CPU,有3 个运行进程在调度程序队列中,那么平均负载即为 1+3=4。
对于一枚 16CPU 的服务器,负载是16 个运行线程,有 24 个运行进程在调度程序队列中,那么平均负载是 40。如果平均负载始终高于CPU 的数目,则可能导致应用程序性能的下降。需要说明的是平均负载只适用于CPU 负载的初始估算,深入的分析我们还需要借助于其他工具来做。再对 CPU平均负载有一个初步了解以后,让我们来看看该命令是如何使用的,它的输出内容又包含那些内容。
在控制台输入“uptime”,回车执行后
可以看到“load average:0.53,0.65,0.34”即为 CPU 平均负载对应系统在第 1分钟,5 分钟和 15 分钟的平均负载值。同时它们也代表 CPU 利用率和饱和度。如果 CPU 数目和平均负载的值相等,通常代表 100%的 CPU利用率,小于 CPU数目,则表示利用率小于 100%,大于 CPU数目需要用饱和度来衡量。
SMART工具输出
使用 smartctl 工具读取磁盘 SMART 信息,目前所有指标仅作为数据收集,不一定意味磁盘损坏(只是表示概率变大),每个metric都会有一组tag描述,表明盘符,例如device=/dev/sda。
- sys.disk.smart.Reallocated_Sector_Ct
- sys.disk.smart.Spin_Retry_Count
- sys.disk.smart.Reallocated_Event_Count
- sys.disk.smart.Current_Pending_Sector
- sys.disk.smart.Offline_Uncorrectable
- sys.disk.smart.Temperature_Celsius
内存相关采集项
计算方法:读取/proc/meminfo 中的内容,其中的mem.memfree是free+buffers+cached,mem.memused=mem.memtotal-mem.memfree。用户具体可以参考free命令的输出和帮助文档来理解每个metric的含义。
- mem.memtotal:内存总大小
- mem.memused:使用了多少内存
- mem.memused.percent:使用的内存占比
- mem.memfree
- mem.memfree.percent
- mem.swaptotal:swap总大小
- mem.swapused:使用了多少swap
- mem.swapused.percent:使用的swap的占比
- mem.swapfree
- mem.swapfree.percent
进程资源监控
- process.cpu.all:进程和它的子进程使用的sys+user的cpu,单位是jiffies
- process.cpu.sys:进程和它的子进程使用的sys cpu,单位是jiffies
- process.cpu.user:进程和它的子进程使用的user cpu,单位是jiffies
- process.swap:进程和它的子进程使用的swap,单位是page
- process.fd:进程使用的文件描述符个数
- process.mem:进程占用内存,单位byte
megacli工具输出
使用 megacli 工具读取 RAID 相关信息,每个metric都会附件一组tag描述,用来标明所属PD或者 VD,PD格式为PD=Enclosure_ID:SLOT_ID,比如PD=32:0表明第一块磁盘 ,VD=0 表明第一个逻辑磁盘。
- sys.disk.lsiraid.pd.Media_Error_Count:这个及以下三个指标目前仅作为数据收集,不一定意味磁盘损坏(只是表示损坏概率变大)
- sys.disk.lsiraid.pd.Other_Error_Count
- sys.disk.lsiraid.pd.Predictive_Failure_Count
- sys.disk.lsiraid.pd.Drive_Temperature
- sys.disk.lsiraid.pd.Firmware_state:如果值不为0,则此物理磁盘出现问题
- sys.disk.lsiraid.vd.cache_policy:如果值不为0,表示此逻辑磁盘缓存策略和设置不符
- sys.disk.lsiraid.vd.state: 如果值不为0,表示此逻辑磁盘出现问题