Total Pageviews

Thursday, 28 November 2019

Linux系统的监控命令汇总

零、Linux系统监控命令速查手册

命令功能作用用法举例



free查看内存使用情况,包括物理内存和虚拟内存free -h或free -m
vmstat对系统的整体情况进行统计,包括内核进程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息vmstat 2 100
top实时显示系统中各个进程的资源占用状况及总体状况top
mpstat实时系统监控工具,它会报告与CPU相关的统计信息mpstat
sar收集、报告和保存CPU、内存、输入输出端口使用情况sar -n DEV 3 100
netstat检验本机各端口的网络连接情况,用于显示与IP、TCP、UDP和ICMP协议相关的统计数据netstat -a
tcpdump用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包tcpdump -i eth0 -c 3
IPTraf用来生成包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和错误等等统计数据iptraf
df检查linux的文件系统的磁盘空间占用情况df -h
iostat收集显示系统存储设备输入和输出状态统计iostat -x -k 2 100
iotop用来监视磁盘I/O使用状况的top类工具iotop
lsof用于以列表的形式显示所有打开的文件和进程lsof
atop显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注atop
htop它和top命令十分相似,高级的交互式的实时linux进程监控工具htop
ps最基本同时也是非常强大的进程查看命令ps aux
glances监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况glances
dstat全能系统信息统计工具,可用于替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具dstat
uptime用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况uptime
dmesg主要用来显示内核信息。使用dmesg可以有效诊断机器硬件故障或者添加硬件出现的问题。dmesg
mpstat用于报告多路CPU主机的每颗CPU活动情况,以及整个主机的CPU情况。mpstat 2 3
nmon监控CPU、内存、I/O、文件系统及网络资源。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。nmon
mytop用于监控 mysql 的线程和性能。它能让你实时查看数据库以及正在处理哪些查询。mytop
iftop用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等iftop
jnettop以相同的方式来监测网络流量但比 iftop 更形象。它还支持自定义的文本输出,并能以友好的交互方式来深度分析日志。jnettop
ngrep网络层的 grep。它使用 pcap ,允许通过指定扩展正则表达式或十六进制表达式来匹配数据包。ngrep
nmap可以扫描你服务器开放的端口并且可以检测正在使用哪个操作系统nmap
du查看Linux系统中某目录的大小du -sh 目录名
fdisk查看硬盘及分区信息fdisk -l

一、内存监控

1.1  free命令

free可以用来快速查看VPS主机的内存使用情况,包括了物理内存和虚拟内存。后面可以加上参数:-h和-m,否则默认会以kb为单位显示。

相关参数说明:
total:物理内存大小,就是机器实际的内存
used:已使用的内存大小,这个值包括了 cached 和 应用程序实际使用的内存
free:未被使用的内存大小
shared:共享内存大小,是进程间通信的一种方式
buffers:被缓冲区占用的内存大小
cached:被缓存占用的内存大小

1.2  vmstat命令

vmstat(Virtual Meomory Statistics,虚拟内存统计)是对系统的整体情况进行统计,包括内核进程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。命令格式:vmstat 2 100,其中2表示刷新间隔,100表示输出次数。

相关参数说明:
1 procs
  1. r列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU
  2. b列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。
2 memory
  1. swpd列表示切换到内存交换区的内存数量(以KB为单位)。如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能;
  2. free列表示当前空闲的物理内存数量(以KB为单位);
  3. buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲;
  4. cache列表示page cached的内存数量,一般作文件系统的cached,频繁访问的文件都会被cached。如果cached值较大,就说明cached文件数较多。如果此时IO中的bi比较小,就说明文件系统效率比较好。
3 swap
  1. si列表示由磁盘调入内存,也就是内存进入内存交换区的数量;
  2. so列表示由内存调入磁盘,也就是内存交换区进入内存的数量
  3. 一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要考虑是否增加系统内存。
4 IO
  1. bi列表示从块设备读入的数据总量(即读磁盘,单位KB/秒)
  2. bo列表示写入到块设备的数据总量(即写磁盘,单位KB/秒)
    这里设置的bi+bo参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈
5 system
  1. in列表示在某一时间间隔中观察到的每秒设备中断数;
  2. cs列表示每秒产生的上下文切换次数。
    上面这两个值越大,会看到内核消耗的CPU时间就越多。
6 CPU
  1. us列显示了用户进程消耗CPU的时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化程序啥的。
  2. sy列显示了内核进程消耗CPU的时间百分比。sy的值比较高时,说明内核消耗的CPU时间多;如果us+sy超过80%,就说明CPU的资源存在不足。
  3. id列显示了CPU处在空闲状态的时间百分比;
  4. wa列表示IO等待所占的CPU时间百分比。wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重
  5. st列一般不关注,虚拟机占用的时间百分比。

二、CPU监控

2.1  TOP命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况及总体状况。

相关的参数说明:
第一行:
  1. 14:36:09: 这是测试时系统的时间
  2. up xxx days, 11:13:系统运行时间,系统已经运行了xx天11小时13分钟了。
  3. 2 users:当前登录用户数
  4. load average:系统负载,即任务队列的平均长度。三个数值分别为最近1分钟、最近5分钟、最近15分钟的平均负载 —— 超过N(CPU核数)说明系统满负荷运行。也可以通过$w$uptime命令查看load average。
第二行:
  1. 显示进程总数、正在运行的进程数、休眠的进程数、停止的进程数、僵尸进程数
第三行:
  1. %us:用户进程消耗的CPU百分比
  2. %sy:内核进程消耗的CPU百分比
  3. %ni:改变过优先级的进程占用CPU的百分比
  4. %id:空闲CPU的百分比
  5. %wa:IO等待消耗的CPU百分比

2.2  mpstat命令

mpstat(Multiprocessor Statistics,多处理器统计)是实时系统监控工具,它会报告与CPU相关的统计信息,这些信息存放在/proc/stat文件中。格式:mpstat -P ALL 2 # ALL表示显示所有CPUs,也可以指定某个CPU;2表示刷新间隔。


三、网络监控

3.1  sar命令

SAR是一个在Unix和Linux操作系统中用来收集、报告和保存CPU内存输入输出端口使用情况的命令。SAR命令可以动态产生报告,也可以把报告保存在日志文件中。命令格式:sar -n DEV 3 100

相关参数说明如下:
IFACE:网络设备的名称
rxpck/s:每秒钟接收到的包数目
txpck/s:每秒钟发送出去的包数目
rxkB/s:每秒钟接收到的字节数
txkB/s:每秒钟发送出去的字节数

3.2  netstat

netstat命令一般用于检验本机各端口的网络连接情况,用于显示与IP、TCP、UDP和ICMP协议相关的统计数据。
选取部分选项说明如下:
-a, --all, --listening     显示所有连接中的Socket。
-n, --numeric              以数字形式显示地址和端口号。
-t, -–tcp                  显示TCP传输协议的连线状况。
-u, -–udp                  显示UDP传输协议的连线状况。
-p, --programs             显示正在使用socket的程序名/进程ID
-l, --listening            显示监控中的服务器的Socket。
-o, --timers               显示计时器。
-s, --statistics           显示每个网络协议的统计信息(比如SNMP)
-i, --interfaces           显示网络界面信息表单(网卡列表)
-r, --route                显示路由表
常用的几种:
$ netstat -aup        # 输出所有UDP连接状况
$ netstat -atp        # 输出所有TCP连接状况
$ netstat -s          # 显示各个协议的网络统计信息
$ netstat -i          # 显示网卡列表
$ netstat -r          # 显示路由表信息
netstat在防御攻击时非常有用。以我平常用到的示例如下:
netstat -n -p|grep SYN_REC | wc -l
上面命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。另外这个值和系统有很大关系,有的服务器值就很高,也是正常现象。
netstat -n -p | grep SYN_REC | sort -u
上面命令可以列出所有连接过的IP地址。
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
上面命令可以列出所有发送SYN_REC连接节点的IP地址。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
上面命令可以使用netstat命令计算每个主机连接到本机的连接数。
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
上面命令可以列出所有连接到本机的UDP或者TCP连接的IP数量。
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
上面命令可以检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
上面命令可以列出所有连接到本机80端口的IP地址和其连接数。80端口一般是用来处理HTTP网页请求。
防御CC攻击还可以用以下方法检测:
查看所有80端口的连接数
  1. netstat -nat|grep -i “80”|wc -l
对连接的IP按连接数量进行排序
  1. netstat -anp | grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
  2. netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
  3. netstat -ntu | awk ‘{print $5}’ | egrep -o “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}” | sort | uniq -c | sort -nr
查看TCP连接状态
  1. netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
  2. netstat -n | awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn
  3. netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’
  4. netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,”\t”,state[key]}’
  5. netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”\t”,arr[k]}’
  6. netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]’ | sort | uniq -c
查看80端口连接数最多的20个IP
  1. cat /www/web_logs/xyz.com_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
  2. tail -n 10000 /www/web_logs/xyz.com_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
  3. cat /www/web_logs/xyz.com_access.log|awk ‘{print $1}’|sort|uniq -c|sort -nr|head -100
  4. netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20
  5. netstat -ant |awk ‘/:80/{split($5,ip,”:”);++A[ip[1]]}END{for(i in A) print A,i}’ |sort -rn|head -n20
用tcpdump嗅探80端口的访问看看谁最高
  1. tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4}’ | sort | uniq -c | sort -nr |head -20
查找较多time_wait连接
  1. netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20
查找较多的SYN连接
  1. netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more
linux下实用iptables封ip段的一些常见命令:
封单个IP的命令是:
  1. iptables -I INPUT -s 211.1.0.0 -j DROP
封IP段的命令是:
  1. iptables -I INPUT -s 211.1.0.0/16 -j DROP
  2. iptables -I INPUT -s 211.2.0.0/16 -j DROP
  3. iptables -I INPUT -s 211.3.0.0/16 -j DROP
封整个段的命令是:
  1. iptables -I INPUT -s 211.0.0.0/8 -j DROP
封几个段的命令是:
  1. iptables -I INPUT -s 61.37.80.0/24 -j DROP
  2. iptables -I INPUT -s 61.37.81.0/24 -j DROP

3.3  tcpdump命令

Tcpdump是最广泛使用的网络包分析器或者包监控程序之一,它用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包。格式:tcpdump -i eth0 -c 3
该命令不是系统自带的,可能需要自己安装.

3.4  IPTraf

iptraf是一个基于ncurses的IP局域网监控器,用来生成包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和错误等等统计数据。简单的和详细的接口统计数据,包括IP、TCP、UDP、ICMP、非IP以及其他的IP包计数、IP校验和错误,接口活动、包大小计数。
命令格式:iptraf。接着就会显示几个监控菜单,

四、磁盘监控

4.1  df命令

df命令的功能是用来检查linux的文件系统的磁盘空间占用情况。如果没有文件名被指定,则显示当前所有被挂载的文件系统,默认以 KB 为单位。常用格式:$ df -h

相关参数说明如下:
-a  全部文件系统列表
-h  以方便阅读的方式显示
-i  显示inode信息
-T  显示文件系统类型
-l  只显示本地文件系统
-k  以KB为单位
-m  以MB为单位

4.2  iostat命令

iostat是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。常用格式:
$ iostat -x -k 2 100        # 2表示刷新间隔,100表示刷新次数


iostat主要是用来监控磁盘I/O,首先输出了CPUs的平均数据(avg-cpu),我们可以看%iowait这一项,除此之外iostat还提供了一些更详细的I/O状态数据,比如:
r/s: 每秒完成的读 I/O 设备次数。
w/s: 每秒完成的写 I/O 设备次数。
rkB/s: 每秒读K字节数.是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数.是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。

4.3  iotop命令

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。
iotop的常用参数如下:
–version 查看程序版本号
-h, –help 查看帮助信息
-o, –only 只查看有IO操作的进程
-b, –batch 非交互模式
-n, –iter= 设置迭代次数
-d, –delay 刷新频率,默认是1秒
-p, –pid 查看指定的进程号的IO,默认是所有进程
-u, –user 查看指定用户进程的IO,默认是所有用户
-P, –processes 只看进程,不看线程
-a, –accumulated 看累计IO,而不是实时IO
-k, –kilobytes 以KB为单位查看IO,而不是以最友好的单位显示
-t, –time 每行添加一个时间戳,默认便开启–batch
-q, –quit 不显示头部信息

4.4  lsof命令

列出打开的文件:lsof。它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你可以很容易地看到正在使用哪个文件。

五、进程监控

5.1  aTOP命令

atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。atop可以看成是top的加强版,如果执行atop命令显示不存在你需要yum或者apt-get 来安装它。

相关的参数说明:
ATOP列:该列显示了主机名、信息采样日期和时间点
PRC列:该列显示进程整体运行情况
  1. sys、usr字段分别指示进程在内核态和用户态的运行时间
  2. #proc字段指示进程总数
  3. #zombie字段指示僵死进程的数量
  4. #exit字段指示atop采样周期期间退出的进程数量
CPU列:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)
  1. sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
  2. irq字段指示CPU被用于处理中断的时间比例
  3. idle字段指示CPU处在完全空闲状态的时间比例
  4. wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例
CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。
cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%
CPL列:该列显示CPU负载情况
  1. avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量
  2. csw字段指示上下文交换次数
  3. intr字段指示中断发生次数
MEM列:该列指示内存的使用情况
  1. tot字段指示物理内存总量
  2. free字段指示空闲内存的大小
  3. cache字段指示用于页缓存的内存大小
  4. buff字段指示用于文件缓存的内存大小
  5. slab字段指示系统内核占用的内存大小
SWP列:该列指示交换空间的使用情况
  1. tot字段指示交换区总量
  2. free字段指示空闲交换空间大小
PAG列:该列指示虚拟内存分页情况
swin、swout字段:换入和换出内存页数
DSK列:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息
  1. sda字段:磁盘设备标识
  2. busy字段:磁盘忙时比例
  3. read、write字段:读、写请求数量
NET列:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息
  1. XXXi  字段指示各层或活动网口收包数目
  2. XXXo 字段指示各层或活动网口发包数目

5.2  htop命令

htop 是一个非常高级的交互式的实时linux进程监控工具。 它和top命令十分相似,但是它具有更丰富的特性,例如用户可以友好地管理进程,快捷键,垂直和水平方式显示进程等等。


5.3  ps命令

ps(Process Status,进程状态)命令是最基本同时也是非常强大的进程查看命令,最常用的命令就是ps aux——显示当前所有进程
$ ps aux | grep root       # 输出root用户的所有进程
$ ps -p  -L            # 显示进程的所有线程
$ ps -e -o pid,uname,pcpu,pmem,comm  # 定制显示的列
$ ps -o lstart         # 显示进程的启动时间
ps命令的输出可以按任意某一列进行排序,通过使用内部排序键(列的别名),例如:
$ ps aux --sort=+rss         # 按内存升序排列
$ ps aux --sort=-rss        # 按内存降序排列
$ ps aux --sort=+%cpu        # 按cpu升序排列
$ ps aux --sort=-%cpu       # 按cpu降序排列

六、系统监控全能工具

上面分享的都是单个查看Linux系统磁盘、CPU、内存等指标的工具,如果我们想要迅速找出来VPS主机的性能瓶颈所在,我们可以采用以下几个“全能”工具:

6.1  glances工具

Glances 是一个用来监视 GNU/Linux 和 FreeBSD 操作系统的 免费软件,通过 Glances,我们可以监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况。语法:glances
Glances 会用几种颜色来代表状态:绿色:OK(一切正常) 蓝色:CAREFUL(需要注意) 紫色:WARNING(警告) 红色:CRITICAL(严重)。阀值可以在配置文件中设置,一般阀值被默认设置为(careful=50、warning=70、critical=90)。

Glances 还提供了更多的可在其运行时开关输出信息选项的快捷键,例如:
a – 对进程自动排序
c – 按 CPU 百分比对进程排序
m – 按内存百分比对进程排序
p – 按进程名字母顺序对进程排序
i – 按读写频率(I/O)对进程排序
d – 显示/隐藏磁盘 I/O 统计信息
f – 显示/隐藏文件系统统计信息
n – 显示/隐藏网络接口统计信息
s – 显示/隐藏传感器统计信息
y – 显示/隐藏硬盘温度统计信息
l – 显示/隐藏日志(log)
b – 切换网络 I/O 单位(Bytes/bits)
w – 删除警告日志
x – 删除警告和严重日志
1 – 切换全局 CPU 使用情况和每个 CPU 的使用情况
h – 显示/隐藏这个帮助画面
t – 以组合形式浏览网络 I/O
u – 以累计形式浏览网络 I/O
q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

6.2  dstat工具

dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3即每三秒收集一次,但最新的数据都会每秒刷新显示。
直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔,如dstat 5是没5s显示一条,dstat 5 10表示没5s显示一条,一共显示10条。如下:

默认输出显示的信息说明:
Procs
  1. r:运行的和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1)
  2. b:处于不可中断状态的进程数,常见的情况是由IO引起的
Memory
  1. swpd: 切换到交换内存上的内存(默认以KB为单位)。如果 swpd 的值不为0,或者还比较大,比如超过100M了,但是 si, so 的值长期为 0,这种情况我们可以不用担心,不会影响系统性能。
  2. free: 空闲的物理内存
  3. buff: 作为buffer cache的内存,对块设备的读写进行缓冲
  4. cache: 作为page cache的内存, 文件系统的cache。如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。
Swap
  1. si: 交换内存使用,由磁盘调入内存
  2. so: 交换内存使用,由内存调入磁盘
内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响。磁盘IO和CPU资源都会被消耗。
我发现有些朋友看到空闲内存(free)很少或接近于0时,就认为内存不够用了,实际上不能光看这一点的,还要结合si,so,如果free很少,但是si,so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
磁盘IO
  1. bi: 从块设备读入的数据总量(读磁盘) (KB/s)
  2. bo: 写入到块设备的数据总理(写磁盘) (KB/s)
注:随机磁盘读写的时候,这2个 值越大(如超出1M),能看到CPU在IO等待的值也会越大
System
  1. in: 每秒产生的中断次数
  2. cs: 每秒产生的上下文切换次数
上面这2个值越大,会看到由内核消耗的CPU时间会越多
Cpu
  1. usr: 用户进程消耗的CPU时间百分比
us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了(比如 PHP/Perl)
  1. sys: 内核进程消耗的CPU时间百分比
sys 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。
  1. wai: IO等待消耗的CPU时间百分比
wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。
  1. idl: CPU处在空闲状态时间百分比

七、总结

对于上面的命令,有些是Linux系统自带的,你可以直接执行。有些是第三方命令,不过绝大多数可以直接通过Yum install xxx或者apt-get intall xxx来安装。这些命令虽然小巧,但是在我们的服务器出现问题将会显得特别有用。
排查服务器问题,我们一般需要结合多项指标来进行综合分析研判。例如如果你怀疑VPS主机的IO读写有问题,你可以通过iotop来查看读写实时速度,同时用top命令查看哪些进程来占用CPU和内存,这样结合多项数据就会得到正确的结果.

Wednesday, 27 November 2019

两个练习英语听力的网站

https://www.allearsenglish.com/
https://connectedcommunicator.com/

ios jailbreak及越狱后的自用软件

引言:记录ios越狱后常用的软件。

越狱

博主iOS版本:12.4
硬件:iPhone SE
越狱我喜欢用chimera,因为自带的sileo比cydia好用多了。
传送门:Chimera
越狱后第一件事,别忘了修改root和mobile用户的密码,见参考文献4。
越狱重启后会自动恢复未越狱状态,这是正常的,提供给了用户快速切换越狱状态的一个方法,如果需要越狱,再次运行越狱软件即可。
如果越狱白苹果了,可以尝试参考文献3,或直接使用爱思助手刷机。

软件

  1. AnimationsBeFast
  2. Aporeo
  3. AppSync Unified
  4. Appinst
  5. Bolders
  6. ColorBadges(为了Goodges 2支持)
  7. Datameter
  8. Filza
  9. Flex 3
  10. GoodWifi
  11. Goodges 2
  12. Liberty Lite
  13. OTADisabler
  14. Palert
  15. PullOver Pro
  16. QQ Helper
  17. QQantiRecallHook
  18. RealCC
  19. ReProvision
  20. Snapper 2
  21. StoreSwitcher 2
  22. Thunder Helper
  23. VideoHUD
  24. iCleaner Pro
  25. iPadStatusBar
  26. 苏兔PLUS
  27. 极简白X sutuplus微信主题

参考文献

  1. iOS 12 — 12.2 and 12.4 越狱插件推荐
  2. 苹果越狱后必装插件
  3. 自己动手几分钟修复白苹果
  4. 越狱后必做的第一件事——修改root、mobile用户密码

中国与普京抱团坚持共产主义 “一带一路”在波罗的海踢到铁板

波罗的海国家立陶宛的领导人先后表态,反对中国试图投资控制当地重要港口。分析人士说,与普京抱团,再加上坚持共产主义,这些因素都导致中国在当地推动“一带一路”严重受阻。波罗的海国家社会正把中共与过去的苏共等同,对中国不满情绪上升,立陶宛今年多次爆发各种反对中国的活动。

中国涉足波罗的海 立陶宛不让中国控制其港口

立陶宛国防部长卡洛布里斯最近对美国网络周刊“华盛顿审查人”表示,他的国家不会允许中国控制当地的克莱佩达港。他说,立陶宛的立场非常明确,克莱佩达港是战略性基础设施,立陶宛绝不可能让它依赖中国。


作为前苏联一部分的立陶宛独立后很快加入北约和欧盟。克莱佩达港是波罗的海地区的深水不冻港。当地很早就开通了到西欧,尤其是德国,还有链接北欧,以及通向东南亚等全球各地的货运航线。

苏联时代还兴建了链接克莱佩达港到苏联其他地区的铁路设施。这使克莱佩达港在中国的“一带一路”项目中更具有重要意义。中国货物经过俄罗斯和中亚后,可抵达克莱佩达港,再前往欧洲其他地区。

中国与长期执政,国内人权状况备受批评的白俄罗斯卢卡申科政权关系密切。两国正积极推动在白俄罗斯首都明斯克郊外实施名叫“巨石”的特别经济区项目。许多中国企业已在当地落户。立陶宛与白俄罗斯相邻,中国企业在那里生产的商品如经克莱佩达港会更方便进入欧洲和其他市场。

中国近些年来越来越重视波罗的海。中国海军主力战舰时常穿越波罗的海抵达圣彼得堡参加俄罗斯的海军节和其他活动。中俄两国海军两年前首次在波罗的海举行了联合军演。中国在北极地区的活动也日益活跃,而波罗的海离北极地较近。

克莱佩达港货运量和收入每年都在上升。立陶宛多年前就在讨论升级改造克莱佩达港,或是在当地兴建新的深水码头。中国很早就有意投资克莱佩达港,双方有关谈判已持续多年,甚至还签署了备忘录文件。

“华盛顿审查人”周刊引述当地匿名消息来源的话说,中国感兴趣的不仅仅是投资,中国希望获得克莱佩达港超过一半的控股权。

与俄走近付出代价 前苏联国家严防中国

立陶宛国防部长卡洛布里斯认为,中国一旦控制克莱佩达港,在危机时刻,中国能制造障碍,阻挠北约增援部队的抵达,军事装备和货物的投送。


乌克兰危机后,位于北约东翼前线,包括立陶宛在内的波罗的海国家都深感俄罗斯威胁。当地民意担心俄罗斯坦克能很快占领波罗的海三国。与此同时,中国与俄罗斯的关系越来越走近。

立陶宛已开始大幅增加军费开支抵御威胁。一个月前,立陶宛与其他北约国家军队,其中包括500名美军士兵,50多辆艾布拉姆斯主战坦克和布雷德利装甲战车在立陶宛境内举行了一次大规模联合军演。

这是立陶宛领导人针对中国试图控制当地重要港口设施的最新一次表态。立陶宛总统瑙塞达7月份也曾发表过类似讲话。他当时表示,克莱佩达港改造项目尚未最后定案,但如果涉及中国投资,那将牵涉到国家安全问题。

愿与中国做生意 但不忘共产主义迫害

俄罗斯时事评论人士尼科里斯基说,俄罗斯对欧盟商品的反制裁,导致立陶宛和其他波罗的海国家商品,特别是农产品都被俄罗斯拒之门外,经济损失严重。立陶宛等波罗的海国家现在都希望开拓中国市场,把肉类、奶制品和鱼类产品打入中国。另一方面,立陶宛仍然希望中国投资。

尼科里斯基:“不管怎样,立陶宛仍然希望中国商品和货物能经过克莱佩达港进入欧洲,这在当地目前讨论的非常多,对于国家不大的立陶宛来说,这是当地经济生活中的一件大事。”

尼科里斯基认为,中国现在强调共产主义意识形态,中国国内对异议人士的迫害,尤其对宗教的打压,还有维吾尔人议题等等,这些都让立陶宛和其他波罗的海国家民意把今天的中国与过去共产党领导下的前苏联联系起来。

尼科里斯基说,立陶宛社会宗教气氛浓厚,多数民众都是虔诚天主教徒,苏共统治时期曾残酷镇压迫害当地宗教信徒和活动人士,再加上目前中俄关系密切,波罗的海国家对中国的反感和戒心越来越严重。

戒心未减弱 反中情绪日益加强

立陶宛总统和议长2013年曾会晤到访的西藏流亡宗教领袖达赖喇嘛,导致中国报复,双方关系被冷冻两年多。从去年年末以来,立陶宛国内反对中国的活动接连不断。


多名立陶宛国会议员去年年末和今年年初发表声明,呼吁调查中国电信巨头华为公司在当地的活动是否危害国家安全。立陶宛安全部门今年2月发表的一份报告首次批评中国在当地从事间谍活动,并把中国与俄罗斯等同视为立陶宛的国家安全威胁。

80多名立陶宛国会议员,还有卫生部长5月份联名呼吁支持台湾参加世界卫生大会,这一举动曾引起中国愤怒。当地许多议员和活动人士8月末在首都维尔纽斯举行了支持香港反送中示威者的活动,遭致中国驻当地外交人员阻挠,双方随后爆发外交口水战。

中国十一国庆更在当地受到抵制。维尔纽斯市长取消了曾计划的燃放烟花庆祝活动。当地议员批评为共产党国家建政庆生是极其荒唐的举动。在维尔纽斯一家酒店中国举行国庆酒会的现场门外,甚至有示威人士当时举牌呼吁参加者关注中国人权,西藏和新疆议题。参加示威的前立陶宛驻美国大使还警告人们说,共产党中国利用孔子学院正在波罗的海地区扩大影响。

评论人士说,为报复立陶宛,中国可能把注意力转向波罗的海的另外几个港口,像拉脱维亚的里加港,或是爱沙尼亚的塔林港,中国也会加大投资波兰与白俄罗斯之间铁路系统,但不管怎样,这些国家社会都难忘遭受共产党迫害的历史,对中国的戒心不会减弱,未来只能加强。

外媒透露中央党校高官谈习近平的终身制 官媒未见报

中国共产党中央党校的一位高级干部最近对一群记者和编辑说,取消中国国家主席任期限制并不意味着现任国家主席,共产党总书记习近平只要愿意就可以终身执政。亚洲时报对此报道没有提及在场媒体及记者细节。没有任何中国官方媒体对此消息有报道。

据亚洲时报报道,官员称习近平不能永远执政。中国一位高级官员告诉媒体,取消总统任期限制并不意味着“终身主席”。
该报道说,培养中国党政领导班子领导干部的中国权威党校副校长谢春涛在本月初中国新闻工作者协会举办的研讨会上向记者保证,中国的体制在修宪之前早已精心制定了领导人继任计划,以确保平稳地进行权力交接。
该报道说,2018年3月,中国相当于国会的全国人民代表大会以明显多数票通过了习近平颁布的国家宪法修正案,以取消国家主席的任期限制。这立即引起了巨大的反冲,被视为中国向后退了一大步,消除了独裁政权下唯一的制衡机制,也使习近平获得了权力控制权。
报道称,中国国家主席是没有实质性权力的礼仪设置,而真正的权力在于共产党总书记和中共中央军事委员会主席,习近平担任这两个职位,而中共党章没有关于任期限制文字叙述。
据报道,谢春涛告诉媒体专业人士,外界对中国全国人大取消国家主席任期限制的批评其实没有根据。因为即使其他国家也没有广泛对领导人继续执政的时间有限制。据他强调,日本首相和德国总理就没有任期限制。(?)
据谢春涛说:“不同的国家会根据领导人的不同情况和需求,自行决定领导人的任职时间。”他补充说,在修改中国宪法之前,中共早就建立了继任机制。
报道引述谢春涛介绍说,习近平在党内晋升时花了四十年的时间,被提拔16个级别,从担任陕西中部一个贫困村的党支书记开始了政治生涯。习近平在2007年进入党的最高层,即中共政治局之前,在陕西,河北,福建,浙江和上海的五个省(地区)工作主管过。习近平于2012年成为中国最高领导人。
该报道说,自1949年共产党成立以来的70年来,只有两位最高领导人江泽民和胡锦涛遵循了共产党的十年任期的不成文规定。
据谢春涛还透露,党的组织部门在2017年入围党的第十九届中央委员会成员时,对所有候选人包括其收入,财产和家庭成员进行了严格的诚信和背景调查。据新华社当时报道说,大约有150名候选人未能入选.

严家祺:从全球角度比较DCEP和Libra


与中国央行发行数字货币不同,Libra不会是未来金融风暴的原因。货币数字化与人工智能、机器人在一起,是工业革命後的又一次伟大革命。
              
     今年10月下旬,在数字货币领域,发生了两个重要事件。一是10月23日,在美国国会听证会上,多位众议员提出Libra挑战美元地位问题,Facebook CEO马克·扎克伯格回应说,Libra储备金主要是美元,Libra不会挑战美元地位。面对被多次讨论的中国挑战,马克·扎克伯格表示,如果美国放弃Libra计划,中国央行就会做数字货币。第二个事件是在美国国会听证会後5天,10月28日中国召开了首届「2019外滩金融峰会」,会议透露,中国中央银行将发行数字货币DCEP(Digital Currency Electronic Payment),会议的一位发言人黄奇帆表示,中国人民银行很可能是全球第一个推出数字货币的央行。
这两次会议,拉开了21世纪数字科技和货币领域中美两国之间的竞争的序幕。这种竞争,涉及中美两国政府不同的作用。在半导体工业的发展中,美国政府虽然起了很重要作用,但对半导体工业来说,并非核心作用。上世纪70至80年代,日本、韩国和中国台湾,政府在半导体工业发展中起了核心作用。一个倾全国或整个地区之力发展半导体工业的国家或地区,发展速度是无与伦比的。在80年代,日本取代了美国成为全球半导体的主要生产者和创造者。韩国到90年代末期成了全球第三大半导体生产国。在数字货币的竞争中,如果中国经济发展良好,人民币不发生大幅度贬值,一个倾全国之力发展的数字货币DCEP就有可能不断扩大自己在全球、特别在欧美以外的影响。
           DCEP与Libra的四大区别
DCEP与Libra在技术细节上有许多不同。从全球角度比较,中国的DCEP与Libra主要有四大区别:
第一个区别是,DCEP的金融基础设施由一国凭借国家力量建设,Libra的金融基础设施主要依靠企业自己的力量建设。
第二个区别是,DCEP的价值只与人民币挂钩,以中国的国家信用作担保,Libra 以美元、欧元、英镑、日元等一揽子货币的信用为基础。
第三区别是,Libra是「无国界货币」,在美国和其他地区,Libra在理论上可以产生多个竞争者;DCEP虽然可以在中国国外小范围内使用,但基本上是中国货币,没有竞争者。
第四个区别是,DCEP由中国中央银行发行,名义上等同现金,DCEP会有通胀风险,通账程度与人民币一致;而Libra会有汇率风险,Libra 储备中有相对应价值的一篮子银行存款和短期政府债券,Libra的实际发行量必须有大致相等的现金存在,并受到货币当局的监管,它的通账程度与一揽子货币相当。
              中国创造了当代「交子」
中国的央行在全球第一个发行数字货币,这是一项创举。在人类史上,早在公元10世纪末,中国就出现了称为「交子」的纸币。11世纪初,中国由国家统一发行「交子」。元朝是中国第一个以纸币为唯一流通货币的王朝。然而,宋元两朝的纸币发行,因政治腐败、滥发纸币,引起物价飞涨而失败了。欧洲首次使用的纸币是1661年由瑞典银行发行的。1705年, 约翰·劳出版《论货币和贸易:为国家供应货币的建议》,约翰·劳提出,贸易有赖货币,为摆脱金银硬币的制约,他提出建立银行,发行纸币,但他在法国的试验以失败告终。
中国宋元时代和约翰·劳在法国发行纸币的历史说明,像纸币这样对整个国家经济有重大影响的创举,要经过一个由非政府机构试验的过程,不宜由政府一下子垄断起来。与约翰·劳大致同时,英格兰银行发行纸币取得成功,是因为英格兰银行吸取了前人失败的教训。英格兰银行只允许发行一定数量的以政府证券担保的纸币,超过这一数量的所有纸币,都需有黄金作为担保。
            数字货币价值的「单摆效应」
任何货币和金融资产的「名义价值」总是围绕着它的「实际价值」波动的。当严重通货膨胀和金融风暴发生时,货币和金融资产的「名义价值」必然产生一种「回复力量」,就像物理学中「单摆振动」时,单摆发生回复一样。严重通货膨胀和金融风暴是「单摆」振幅过高现象,是一种向全社会的「宣告机制」,而这种宣告,不是由政府,而是由「经济气候」向全社会宣告的。你们的钱和你们的投资,部分蒸发了、无形中消失了。美联储每一次增息降息,是向所有商业银行、金融机构和所有投资者预报,你们要改变你们的资产组合,错误的金融决策,会给你们带来损失。数字货币价值同样会产生「单摆效应」。由中央银行发行数字货币,一旦发生严重通账或恶性通账,这种「宣告机制」就完全由中央银行和政府承担。在一定意义上,像马多夫自首有助于化解西方式金融风暴一样,中国则以主动揭露和监禁贪官和金融犯罪分子化解金融风暴,可以说,「反腐」是一种「广义的财政政策」,实际上是金融风暴还没有发生时,在很多情况下,中国就把金融风暴「消灭在萌芽之中」了。西方的金融风暴是一次性向全社会大规模宣告,中国式反腐是无数次向小社会的小规模宣告,你们的钱和你们的投资,被一个特定的犯罪分子或贪官侵吞了。在央行发行DCEP情况下,一旦产生危机,就是中国的中央银行向全社会宣告。
  Libra开创的是超越国界的全人类事业
DCEP首先是中国的事业,中国人口占全球人口近1 /5,中国发行DCEP的成功,对世界各国央行发行数字货币会提供宝贵经验。在我看来,全球货币数字化必须建立在各国中央银行发行数字货币的基础上,但有必要经过Libra这样的「非央行发行」过程。作为「无国界货币」,Libra不只是美国的事业,而且是为美国和全人类谋福利的事业。DCEP与Libra的发展前景会有不同。从DCEP和Libra的四大区别可以看到,DCEP的主要问题是只与一种货币——人民币挂钩,而Libra的价值与美元、欧元、英镑、日元等一揽子货币的信用为基础。近几年来,中国经济出现下行趋势,将对人民币未来价值大有影响,这种趋势还会进一步发展。如果在中国经济发展良好的情况下开始发行DCEP,DCEP避免严重通账的机会就会增加。
与中国央行发行数字货币不同,由Facebook等企业发行数字货币Libra,不会是未来可能的金融风暴的原因。Libra的事业,不只是美国和西方国家的事业,而是超越国界的、全人类的事业,各国政府不应当在Libra诞生时,就把它「消灭在萌芽之中」,各国政府至少不应阻碍Libra开创21世纪货币革命的伟大事业 。全球货币数字化与人工智能、机器人的普及在一起,是继工业革命後的又一次伟大革命。
FROM http://cn.ft.com/story/001085281?adchannelID=&full=y

特朗普簽署,《香港人權與民主法案》生效


美國總統特朗普正式簽署《香港人權與民主法案》,意味法案正式生效。法案將要求總統制定制裁名單,對侵蝕香港自治和法治的人士實施拒絕入境、凍結在美資產等形式的制裁。
眾議院在今年 9 月曾無異議通過同一法案的眾議院版本,而參議院則在本周二一致通過了法案。由於兩院版本不同在送交總統簽署前必須加以協調,眾議院之後直接對參議院版本進行了表決,以 417 票支持,1 票反對通過了這部法案。
法案要求國務卿向國會提交年度報告,評估香港是否繼續享受不同於中國大陸的特殊待遇,要求國務院不應根據被捕記錄,對香港民主和平抗爭人士拒發簽證。法案還要求總統制定制裁名單,對侵蝕香港自治和法治的人士實施拒絕入境、凍結在美資產等形式的制裁。
在特朗普簽署法案前,中國及香港政府曾表示強烈不滿。港府周四(21日)發新聞稿,指法案不單干預香港的內部事務,更會向暴力示威者發出錯誤信息,無助香港局勢降溫。《人民日報》亦在頭版發表評論員文章《干涉中國內政的法案就是廢紙一張》,認為法案肆意踐踏國際法和國際關係基本準則,「再次暴露其強盗嘴臉和霸權本性」,促請美國立即停止插手香港事務,「以免引火燒身」。
中國外交部發言人耿爽周三(20日)表明,香港是中國的香港,香港事務純屬中國內政,籲美方認清形勢懸崖勒馬,立即採取措施阻止該案成法,立即停止插手香港事務、干涉中國內政,以免引火焚身、自食苦果。如果美方一意孤行,中方必將採取有力措施予以堅決反制,堅定維護國家主權、安全、發展利益。
附转:

特朗普总统签署《香港人权与民主法案》

2019年11月28日
美国之音 – 特朗普总统星期五(11月27日)宣布他已经将《2019年香港人权与民主法案》和《保护香港法案》签署成为法律。
《香港人权与民主法案》将对香港的自治状态进行年度审议以确定是否维持美国给予香港的特殊地位,同时还警告要制裁侵犯香港自治和人权的官员。
特朗普总统在白宫发表的声明中说:“法案某些条款将干涉总统申明美国外交政策的宪法权威。我的行政当局将在符合总统与外交关系有关的宪法权威的情况下对待法案的每一项条款。”
特朗普总统同时还签署了《保护香港法案》。这部法案禁止向香港警方出口美国制造的某些武器装备。
特朗普总统在白宫发布的另一项声明中说:“我出于对中国习主席和香港人民的尊重签署了这些议案。实施这些议案是本着这样的希望,也就是中国和香港的领导人与代表将能够友好地解决分歧,走向造福于所有人的长期和平与繁荣。”
美国国会两院上星期高效率地通过了《香港人权与民主法案》。这部得到两党议员广泛支持的法案在参议院获得无异议通过,在众议院只有一票反对。两院还无异议通过了《保护香港法案》。
《香港人权与民主法案》在参议院的发起人共和党参议员鲁比奥、民主党参议员卡丁和参议院外交委员会主席、共和党人里施与参议院外委会首席民主党成员梅嫩德斯发表声明,称赞特朗普总统签署法案。
里施参议员说:“这部法律是真正的两党两院努力的产物,我很高兴我们走到一起,异口同声地告诉香港人民,美国与他们站在一起。”
上星期五,特朗普总统说,他要“好好看看”这部法案。他还说,他既与香港人民站在一起,也与他的好朋友习近平主席站在一起,并且说法案是给美中贸易谈判带来复杂性的因素。这让人一度猜测特朗普总统有可能会否决法案。
中国称这部法案“混淆是非”、“干涉中国内政”。