命令

mac上没有的命令,通过brew下载:

参考:https://www.jianshu.com/p/06fd53df5f1d,直接从第三步开始

 

1.set
-e 与 -x ,一般写在代码逻辑之前,这两个组合一起用,可在 debug节省许多时间 )
-x:在执行每一行时,把执行的内容输出来。它可以让你看到当前执行的情况,里面涉及的变量也会被替换成实际的值。
-e:在执行出错时结束程序,就像其他语言中的“抛出异常”一样。
-u :执行时使用到未定义过的变量,显示错误信息。
 
 
2.括号:
[ ]:必须加空格
 
 
3.wget:
wget -O output.tar.gz --no-check-certificate --header "IREPO-TOKEN:c61d183a-9524-45eb-88e9-197eb20755d1" "https://irepo.baidu-int.com/rest/prod/v3/baidu/gov/china-gov-app/nodes/3781094/files"
-O:指定文件名
--no-check-certificate:不要验证服务器的证书
--header:在头部插入
 
 
4.curl:
curl -X GET -O -u backup_web:Baidu@6789 http://192.164.39.10:8082/test/test.log
-X:配置http的方法
-u:服务器的用户和密码

 

 

 

用十条命令在一分钟内检查 Linux 服务器性能

参考地址:https://www.infoq.cn/article/2015%2F12%2Flinux-performance?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

1.uptime

#持续运行时间、负载。比如1分钟平均负载很高,而15分钟平均负载很低,说明服务器正在命令高负载情况,需要进一步排查 CPU 资源都消耗在了哪里。反之,如果15分钟平均负载很高,1分钟平均负载较低,则有可能是 CPU 资源紧张时刻已经过去:
[work@localhost ~]$ uptime
 10:53:27 up 26 days,  8:56,  3 users,  load average: 0.00, 0.01, 0.05

2.dmesg|tail

display message,显示内核的相关信息的。dmesg是从内核环形缓冲区中获取数据的。当我们排除故障时,dmesg会鉴别硬件相关的error和warning,还能打印出守护进程相关的信息,帮助我们debug。
[work@localhost ~]$ dmesg|tail
[   26.877324] tun: Universal TUN/TAP device driver, 1.6
[   26.877328] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[   26.878982] virbr0: port 1(virbr0-nic) entered blocking state
[   26.878986] virbr0: port 1(virbr0-nic) entered disabled state
[   26.879271] device virbr0-nic entered promiscuous mode
[   27.005473] virbr0: port 1(virbr0-nic) entered blocking state
[   27.005479] virbr0: port 1(virbr0-nic) entered listening state
[   27.005621] IPv6: ADDRCONF(NETDEV_UP): virbr0: link is not ready
[   27.089132] virbr0: port 1(virbr0-nic) entered disabled state
[137910.883847] Ebtables v2.0 unregistered

3.vmstat 1

1:1秒输出一次。
r:等待在CPU资源的进程数。这个数据比平均负载更加能够体现CPU负载情况,数据中不包含等待IO的进程。如果这个数值大于机器 CPU 核数,那么机器的 CPU 资源已经饱和。
free:系统可用内存数(以千字节为单位),如果剩余内存不足,也会导致系统性能问题。下文介绍到的 free 命令,可以更详细的了解系统内存的使用情况。
si, so:交换区写入和读取的数量。如果这个数据不为0,说明系统已经在使用交换区(swap),机器物理内存已经不足。
us, sy, id, wa, st:这些都代表了 CPU 时间的消耗,它们分别表示用户时间(user)、系统(内核)时间(sys)、空闲时间(idle)、IO 等待时间(wait)和被偷走的时间(stolen,一般被其他虚拟机消耗)。
如果用户时间和系统时间相加非常大,CPU 出于忙于执行指令。如果 IO 等待时间很长,那么系统的瓶颈可能在磁盘 IO。
[work@localhost ~]$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free     buff  cache     si   so   bi    bo   in   cs us sy id  wa st
 1  0      0 61952352   3176 2946652    0    0     0     0    1    0  0  0 100  0  0
 0  0      0 61952852   3176 2946668    0    0     0     0  447  377  0  0 100  0  0
 0  0      0 61952820   3176 2946700    0    0     0     0  393  346  0  0 100  0  0
 0  0      0 61951932   3176 2946708    0    0     0     0 1587  911  0  1 99   0  0

4.mpstat -P ALL 1

显示每个 CPU 的占用情况,如果有一个 CPU 占用率特别高,那么有可能是一个单线程应用程序引起的。
[work@localhost ~]$ mpstat -P ALL 1
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     09/16/2019      _x86_64_        (12 CPU)
12:30:19 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:30:20 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    4    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    5    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    6    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    7    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    8    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM    9    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM   10    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
12:30:20 PM   11    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

5.pidstat 1

输出进程的CPU占用率,1秒1次。
[work@localhost ~]$ pidstat 1
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     09/16/2019      _x86_64_        (12 CPU)
12:35:20 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
12:35:21 PM  1001     61558    0.95    0.95    0.00    1.90     3  pidstat

6.iostat

查看机器磁盘IO。
r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大会引起性能问题。
await:IO操作的平均等待时间,单位毫秒。是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
avgqu-sz:向设备发出的请求平均数量。如果这个数值大于 1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。
%util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响 IO 性能(可以参照 IO 操作平均等待时间)。如果到达 100%,说明硬件设备已经饱和。
如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使 IO 性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。
[work@localhost ~]$ iostat -xz 1
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     09/16/2019      _x86_64_        (12 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.03    0.00    0.06    0.00    0.01   99.90
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
xvda              0.00     0.01    0.01    0.10     0.19     0.79    18.04     0.00    2.24    9.50    1.64   0.57   0.01
xvde              0.00     0.02    0.00    0.12     0.00     1.75    29.30     0.00    6.81    2.21    6.82   0.42   0.01
dm-0              0.00     0.00    0.01    0.25     0.18     2.55    21.24     0.00    4.62    9.83    4.45   0.42   0.01
dm-1              0.00     0.00    0.00    0.00     0.00     0.00    37.76     0.00    1.82    1.82    0.00   0.95   0.00

7.free

查看系统内存的使用情况,-m兆。
最后两列分别表示用于IO缓存的内存数,和用于文件系统页缓存的内存数。
第二行 -/+ buffers/cache,看上去缓存占用了大量内存空间。这是 Linux 系统的内存使用策略,尽可能的利用内存,如果应用程序需要内存,这部分内存会立即被回收并分配给应用程序。因此,这部分内存一般也被当成是可用内存。
如果可用内存非常少,系统可能会动用交换区(如果配置了的话),这样会增加IO开销(可以在 iostat 命令中提现),降低系统性能。
[work@localhost ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:          64243         863       60498         570        2881       62222
Swap:          2047           0        2047

8.sar -n DEV 1

查看网卡的吞吐率。排查性能时,可通过网卡的吞吐量,判断网络设备是否已经饱和。
[work@localhost ~]$ sar -n DEV 1
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     09/16/2019      _x86_64_        (12 CPU)
12:56:20 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:56:21 PM      eth0      1.00      1.00      0.08      0.10      0.00      0.00      0.00
12:56:21 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:56:21 PM virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:56:21 PM    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

9.sar -n TCP,ETCP 1

查看 TCP 连接状态,其中包括:
active/s:每秒本地发起的TCP连接数,即通过connect调用创建的TCP连接;
passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;
retrans/s:每秒 TCP 重传数量;
TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包。
[work@localhost ~]$ sar -n TCP,ETCP 1
Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     09/16/2019      _x86_64_        (12 CPU)
01:02:10 PM  active/s passive/s    iseg/s    oseg/s
01:02:11 PM      0.00      2.00     10.00     10.00
01:02:10 PM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
01:02:11 PM      0.00      0.00      0.00      0.00      0.00

10.top

top包含了前面好几个命令的检查的内容。比如系统负载情况(uptime)、系统内存使用情况(free)、系统CPU使用情况(vmstat)等。因此通过这个命令,可以相对全面的查看系统负载的来源。
[work@localhost ~]$ top
Tasks: 230 total,   1 running, 229 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  1.5 sy,  0.0 ni, 98.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65785500 total, 61949736 free,   884632 used,  2951132 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used. 63715192 avail Mem
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                  
 67111 work      20   0  157848   2272   1472 R   5.9  0.0   0:00.02 top                                                                                                      
     1 root      20   0  194228   7416   4064 S   0.0  0.0   2:06.12 systemd                                                                                                  
     2 root      20   0       0      0      0 S   0.0  0.0   0:01.68 kthreadd                                                                                                 
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.11 ksoftirqd/0                                                                                              
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                             
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.21 migration/0                                                                                              
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                                   
     9 root      20   0       0      0      0 S   0.0  0.0   5:21.09 rcu_sched                                                                                                
    10 root      rt   0       0      0      0 S   0.0  0.0   0:13.51 watchdog/0                                                                                               
    11 root      rt   0       0      0      0 S   0.0  0.0   0:10.06 watchdog/1                                                                                               
    12 root      rt   0       0      0      0 S   0.0  0.0   0:18.71 migration/1                                                                                              
    13 root      20   0       0      0      0 S   0.0  0.0   0:00.21 ksoftirqd/1                                                                                              
    15 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H                                                                                             
    16 root      rt   0       0      0      0 S   0.0  0.0   0:09.57 watchdog/2                                                                                               
    17 root      rt   0       0      0      0 S   0.0  0.0   0:10.30 migration/2                                                                                              
    18 root      20   0       0      0      0 S   0.0  0.0   0:00.24 ksoftirqd/2                                                                                              
    20 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/2:0H                                                                                             
    21 root      rt   0       0      0      0 S   0.0  0.0   0:09.75 watchdog/3                                                                                               
    22 root      rt   0       0      0      0 S   0.0  0.0   0:00.98 migration/3                                                                                              
    23 root      20   0       0      0      0 S   0.0  0.0   0:00.13 ksoftirqd/3                                                                                              
    25 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/3:0H                                                                                             
    26 root      rt   0       0      0      0 S   0.0  0.0   0:09.50 watchdog/4                                                                                               
    27 root      rt   0       0      0      0 S   0.0  0.0   0:00.25 migration/4                                                                                              
    28 root      20   0       0      0      0 S   0.0  0.0   0:00.35 ksoftirqd/4                                                                                              
    30 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/4:0H                                                                                             
    31 root      rt   0       0      0      0 S   0.0  0.0   0:08.97 watchdog/5                                                                                               
    32 root      rt   0       0      0      0 S   0.0  0.0   0:00.21 migration/5                                                                                              
    33 root      20   0       0      0      0 S   0.0  0.0   0:00.08 ksoftirqd/5                                                                                              
    35 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/5:0H                                                                                             
    36 root      rt   0       0      0      0 S   0.0  0.0   0:10.16 watchdog/6                                                                                               
    37 root      rt   0       0      0      0 S   0.0  0.0   0:00.25 migration/6                                                                                              
    38 root      20   0       0      0      0 S   0.0  0.0   0:07.82 ksoftirqd/6                                                                                              
    40 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/6:0H                                                                                             
    41 root      rt   0       0      0      0 S   0.0  0.0   0:09.74 watchdog/7                                                                                               
    42 root      rt   0       0      0      0 S   0.0  0.0   0:18.20 migration/7                                                                                              
    43 root      20   0       0      0      0 S   0.0  0.0   0:00.38 ksoftirqd/7                                                                                              
    45 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/7:0H                                                                                             
    46 root      rt   0       0      0      0 S   0.0  0.0   0:09.00 watchdog/8                                                                                               
    47 root      rt   0       0      0      0 S   0.0  0.0   0:12.00 migration/8                                                                                              
    48 root      20   0       0      0      0 S   0.0  0.0   0:00.33 ksoftirqd/8                                                                                              
    50 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/8:0H                                                                                             
    51 root      rt   0       0      0      0 S   0.0  0.0   0:09.13 watchdog/9                                                                                               
    52 root      rt   0       0      0      0 S   0.0  0.0   0:01.21 migration/9                                                                                              
    53 root      20   0       0      0      0 S   0.0  0.0   0:00.14 ksoftirqd/9                                                                                              
    55 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/9:0H                                                                                             
    56 root      rt   0       0      0      0 S   0.0  0.0   0:08.97 watchdog/10                                                                                              
    57 root      rt   0       0      0      0 S   0.0  0.0   0:00.26 migration/10                                                                                             
    58 root      20   0       0      0      0 S   0.0  0.0   0:00.10 ksoftirqd/10                                                                                             
    60 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/10:0H                                                                                            
    61 root      rt   0       0      0      0 S   0.0  0.0   0:08.59 watchdog/11

 

dig

查询DNS包括NS记录,A记录,MX记录等相关信息的工具。

参考:https://www.imooc.com/article/26971?block_id=tuijian_wz

A记录:域名指向IP

CNAME:将域名指向另一个域名,再由另一个域名提供 ip 地址

MX:设置邮箱

NS:域名服务器记录,把子域名交给其他 DNS 服务器解析

 

ionice

命令功能:
ionice – 获取或设置程序的IO调度与优先级。
 
命令格式:
ionice [[-c class] [-n classdata] [-t]] -p PID [PID]…
 
ionice [-c class] [-n classdata] [-t] COMMAND [ARG]…
 
IO调度策略:

ionice将磁盘IO调度分为三类:

ilde:空闲磁盘调度,该调度策略是在当前系统没有其他进程需要进行磁盘IO时,才能进行磁盘;因此该策略对当前系统的影响基本为0;当然,该调度策略不能带有任何优先级参数;目前,普通用户是可以使用该调度策略(自从内核2.6.25开始)。

Best effort:是缺省的磁盘IO调度策略;(1)该调度策略可以指定优先级参数(范围是0~7,数值越小,优先级越高);(2)针对处于同一优先级的程序将采round-robin方式;(3)对于best effort调度策略,8个优先级等级可以说明在给定的一个调度窗口中时间片的大小。(4)目前,普调用户(非root用户)是可以使用该调度策略。(5)在内核2.6.26之前,没有设置IO优先级的进程会使用“none”作为调度策略,但是这种策略使得进程看起来像是采用了best effort调度策略,因为其优先级是通过关于cpu nice有关的公式计算得到的:io_priority = (cpu_nice + 20) /5。(6)在内核2.6.26之后,如果当前系统使用的是CFQ调度器,那么如果进程没有设置IO优先级级别,将采用与内核2.6.26之前版本同样的方式,推到出io优先级级别。

Real time:实时调度策略,如果设置了该磁盘IO调度策略,则立即访问磁盘,不管系统中其他进程是否有IO。因此使用实时调度策略,需要注意的是,该访问策略可能会使得其他进程处于等待状态。

 

参数说明:

-c class :class表示调度策略,其中0 for none, 1 for real time, 2 for best-effort, 3 for idle。
-n classdata:classdata表示IO优先级级别,对于best effort和real time,classdata可以设置为0~7。
-p pid:指定要查看或设置的进程号或者线程号,如果没有指定pid参数,ionice will run the listed program with the given parameters。
-t :忽视设置优先级时产生的错误。
COMMAND:表示命令名


posted @ 2020-04-07 11:03  lidowson  阅读(6)  评论(0)    收藏  举报