【Linux】服务器运维笔记


title: Devops
date: 2019-01-14 19:10:00
tags: Devops

@hucong

目录导航

#服务器运维笔记

查看内存的使用量方法

文章参考:Linux查看CPU和内存使用情况
               Linux下查看内存使用情况方法总结

  • 在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。
  • Linux服务器之前的文件传输:scp指令

1./proc/meminfo

查看RAM使用情况最简单的方法是通过/proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过/proc//statm 和 /proc//status 来查看。

#[root@iZ2ze7gl52onms2ithgtodZ apache-tomcat-saas]# cat /proc/meminfo
MemTotal:        3924684 kB
MemFree:          626336 kB
Buffers:          176804 kB
Cached:           770276 kB
SwapCached:            0 kB
Active:          2138488 kB
Inactive:         985060 kB
Active(anon):    1517364 kB
Inactive(anon):   659268 kB
Active(file):     621124 kB
Inactive(file):   325792 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194296 kB
SwapFree:        4194296 kB
Dirty:                72 kB
Writeback:             0 kB
AnonPages:       2176500 kB
Mapped:            43996 kB
Shmem:               164 kB
Slab:             120816 kB
SReclaimable:      91068 kB
SUnreclaim:        29748 kB
KernelStack:        3656 kB
PageTables:         8516 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     6156636 kB
Committed_AS:    2690380 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       19640 kB
VmallocChunk:   34359716220 kB
HardwareCorrupted:     0 kB
AnonHugePages:   1937408 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        6016 kB
DirectMap2M:     2091008 kB
DirectMap1G:     2097152 kB

2.atop

atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。

注:可能需要安装 yum install atop

[root@iZ2ze7gl52onms2ithgtodZ apache-tomcat-saas]# atop

ATOP - iZ2ze7gl52onms2ithgtodZ                  2019/01/14  17:18:28                  ---------                  10s elapsed
PRC |  sys    0.45s  |  user   0.98s  |  #proc     90  |  #tslpi   456  |  #tslpu     0  |  #zombie    0  |  #exit	0  |
CPU |  sys	 5%  |  user     10%  |  irq	   0%  |  idle    184%  |  wait      0%  |  curf 2.50GHz  |  curscal   ?%  |
cpu |  sys	 3%  |  user	  5%  |  irq	   0%  |  idle     92%  |  cpu001 w  0%  |  curf 2.50GHz  |  curscal   ?%  |
cpu |  sys	 2%  |  user	  5%  |  irq	   0%  |  idle     92%  |  cpu000 w  0%  |  curf 2.50GHz  |  curscal   ?%  |
CPL |  avg1    0.24  |  avg5    0.22  |  avg15   0.19  |  csw     4766  |  intr    3609  |                |  numcpu     2  |
MEM |  tot     3.7G  |  free  606.2M  |  cache 754.1M  |  dirty   2.3M  |  buff  172.7M  |  slab  118.7M  |                |
SWP |  tot     4.0G  |  free    4.0G  |                |                |                |  vmcom   2.6G  |  vmlim   5.9G  |
DSK |           vda  |  busy      0%  |  read       1  |  write      7  |  MBr/s   0.00  |  MBw/s   0.01  |  avio 2.38 ms  |
NET |  transport     |  tcpi	   9  |  tcpo      12  |  udpi       0  |  udpo       0  |  tcpao      0  |  tcppo      0  |
NET |  network       |  ipi        9  |  ipo       12  |  ipfrw      0  |  deliv      9  |  icmpi      0  |  icmpo      0  |
NET |  eth0    ----  |  pcki       3  |  pcko       6  |  si    0 Kbps  |  so    4 Kbps  |  erri       0  |  erro       0  |
NET |  lo      ----  |  pcki       6  |  pcko       6  |  si    0 Kbps  |  so    0 Kbps  |  erri       0  |  erro	0  |

  PID   TID  RUID      EUID      THR   SYSCPU   USRCPU  VGROW   RGROW   RDDSK  WRDSK  ST  EXC S  CPUNR   CPU  CMD        1/1
 2351     -  root      root       73    0.40s    0.88s     0K      0K      0K     8K  --    - S      0   13%  java
 2076     -  root      root	 205    0.02s    0.04s -4904K  -4904K      4K     0K  --    - S      0    1%  java
26032     -  root      root	   1    0.02s    0.02s  2500K    472K      0K     0K  --    - R      0    0%  atop
  941     -  root      root	  15    0.00s    0.02s     0K      0K      0K     0K  --    - S      0    0%  java
  783     -  root      root	  17    0.01s    0.01s     0K      0K      0K     0K  --    - S      0    0%  AliYunDun
 1528     -  mysql     mysql	  44    0.00s    0.01s     0K      0K      0K     0K  --    - S      0    0%  mysqld
  768     -  root      root        4    0.00s    0.00s     0K      0K      0K     0K  --    - S      1    0%  AliYunDunUpdat
 1722     -  root      root        6    0.00s    0.00s     0K      0K	   0K     0K  --    - S      1    0%  aliyun-service
  996     -  nscd      nscd        8    0.00s    0.00s     0K      0K      0K     0K  --    - S      0    0%  nscd
  939     -  root      root 	   2    0.00s    0.00s     0K      0K      0K     0K  --    - S      0    0%  wrapper
   41     -  root      root 	   1    0.00s    0.00s     0K      0K      0K     0K  --    - S      0    0%  khugepaged
  270     -  root      root        1    0.00s    0.00s     0K	   0K	   0K    20K  --    - S      0    0%  jbd2/vda1-8
  358     -  root      root        1    0.00s    0.00s     0K	   0K	   0K     4K  --    - S      1    0%  flush-252:0

3.htop
htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。

注:可能需要安装 yum install htop

# htop

Alt
End with an example of getting some data out of the system or using it for a little demo

4.top

Explain how to run the automated tests for this system

[root@iZ2ze7gl52onms2ithgtodZ apache-tomcat-saas]# top

top - 17:26:28 up 11 days,  1:41,  1 user,  load average: 0.17, 0.17, 0.17
Tasks:  90 total,   1 running,  88 sleeping,   1 stopped,   0 zombie
Cpu(s): 14.2%us,  5.8%sy,  0.0%ni, 80.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3924684k total,  3301188k used,   623496k free,   176852k buffers
Swap:  4194296k total,        0k used,  4194296k free,   772740k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                       
 2076 root      20   0 3693m 873m  13m S 39.6 22.8   1552:28 java                                                           
  941 root      20   0 2443m  61m 3784 S  0.3  1.6  76:33.71 java                                                           
26072 root      20   0 15036 1196  932 R  0.3  0.0   0:00.02 top                                                            
    1 root      20   0 19364 1536 1212 S  0.0  0.0   0:00.50 init                                                           
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                       
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.36 migration/0                                                    
    4 root      20   0     0    0    0 S  0.0  0.0   0:02.30 ksoftirqd/0                                                    
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                    
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.87 watchdog/0                                                     
    7 root      RT   0     0    0    0 S  0.0  0.0   0:00.34 migration/1                                                    
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1                                                    
    9 root      20   0     0    0    0 S  0.0  0.0   0:02.37 ksoftirqd/1                                                    
   10 root      RT   0     0    0    0 S  0.0  0.0   0:00.64 watchdog/1                                                     
   11 root      20   0     0    0    0 S  0.0  0.0   0:32.02 events/0                                                       
   12 root      20   0     0    0    0 S  0.0  0.0   0:32.92 events/1                                                       
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup                                                         
   14 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper                                                        
   15 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns                                                          
   16 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr                                                      
   17 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm                                                             
   18 root      20   0     0    0    0 S  0.0  0.0   0:02.10 sync_supers                                                    
   19 root      20   0     0    0    0 S  0.0  0.0   0:02.61 bdi-default                                                    
   20 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0                                                  
   21 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/1                                                  
   22 root      20   0     0    0    0 S  0.0  0.0   0:05.13 kblockd/0                                                      
   23 root      20   0     0    0    0 S  0.0  0.0   0:00.75 kblockd/1                                                      
   24 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpid                                                         
   25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpi_notify                                                   
   26 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kacpi_hotplug                                                  
   27 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ata_aux                                                        
   28 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ata_sff/0                                                      
   29 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ata_sff/1                                                      
   30 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksuspend_usbd                                                  
   31 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khubd                                                          
   32 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kseriod     

5.free

free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。

[root@iZ2ze7gl52onms2ithgtodZ apache-tomcat-saas]# free
             total       used       free     shared    buffers     cached
Mem:       3924684    3300932     623752          0     176852     772764
-/+ buffers/cache:    2351316    1573368
Swap:      4194296          0    4194296

6.nmon
nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。

                                                                                                                          
x   ------------------------------ ----------------------------------------------------------------------------------------x
x    _ __  _ __ ___   ___  _ __    	 For help type H or ...                                                            x
x   | '_ \| '_ ` _ \ / _ \| '_ \          nmon -?  - hint                                                                  x
x   | | | | | | | | | (_) | | | |         nmon -h  - full details                                                          x
x   |_| |_|_| |_| |_|\___/|_| |_|                                                                                          x
x                                        To stop nmon type q to Quit                                                       x
x   ------------------------------                                                                                         x
x                                                                                                                          x
x   CentOS release 6.5 (Final) CentOS release 6.5 (Final)                                                                  x
x   Vendor=GenuineIntel Model=Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz                                                 x
x   MHz=2499.994 bogomips=4999.98          lscpu:CPU=2 Little Endian                                                       x
x   ProcessorChips=1 PhyscalCores=1              Sockets=1 Cores=1 Thrds=2                                                 x
x   Hyperthreads  =2 VirtualCPUs =2              MHz=2499 max=0 min=0                                                      x
x                                                                                                                          x
x   Use these keys to toggle statistics on/off:                                                                            x
x     c = CPU         l = CPU Long-term     - = Faster screen updates                                                      x
x     C = " WideView  U = Utilisation       + = Slower screen updates                                                      x
x     m = Memory      V = Virtual memory    j = File Systems                                                               x
x     d = Disks       n = Network           . = only busy disks/procs                                                      x
x     r = Resource    N = NFS               h = more options                                                               x
x     k = Kernel      t = Top-processes     q = Quit                                                                       x
x--------------------------------------------------------------------------------------------------------------------------x

输入m查看内存信息

x  Memory and Swap                                                                                                         x
x PageSize:4KB   RAM-Memory  Swap-Space       High-Memory     Low-Memory                                                   x
x Total (MB)         3832.7      4096.0       - not in use   - not in use                                                  x
x Free  (MB)          570.7      4096.0                                                                                    x
x Free Percent         14.9%      100.0%                                                                                   x
x Linux Kernel Internal Memory (MB)                                                                                        x
x                        Cached=     787.2     Active=    2109.0                                                           x
x Buffers=     173.9 Swapcached=       0.0  Inactive =     981.5                                                           x
x Dirty  =       0.1 Writeback =       0.0  Mapped   =      43.2                                                           x
x Slab   =     119.1 Commit_AS =    2633.0 PageTables=       8.4                                                           x
x                                                                                                                          x

7.ps

ps命令可以实时的显示各个进程的内存使用情况。

Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。

你可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序:

[root@iZ2ze7gl52onms2ithgtodZ apache-tomcat-saas]# ps aux --sort -rss
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      2076  9.7 22.8 3782296 894944 ?      Sl   Jan03 1554:00 /usr/local/jdk1.8.0_144/bin/java -Djava.util.logging.confi
root      2351 10.7 21.6 3626568 847788 ?      Sl   Jan03 1711:29 /usr/local/jdk1.8.0_144/bin/java -Djava.util.logging.confi
mysql     1528  0.0 10.0 1652972 395236 ?      Sl   Jan03   6:58 /usr/sbin/mysqld --basedir=/usr --datadir=/data/mysql --plu
root       941  0.4  1.5 2502644 62464 ?       Sl   Jan03  76:38 /usr/local/cloudmonitor/jre/bin/java -Djava.compiler=none -
root       783  0.1  0.2 119800 10200 ?        S<sl Jan07  20:38 /usr/local/aegis/aegis_client/aegis_10_57/AliYunDun
nginx     2329  0.0  0.1 111400  5552 ?        S    Jan03   0:39 nginx: worker process
nginx     2330  0.0  0.1 111116  5328 ?        S    Jan03   0:34 nginx: worker process
root     25778  0.0  0.1 144484  4160 pts/0    T    16:34   0:00 vim apache-tomcat-saas/
root     23771  0.0  0.1  98316  4080 ?        Ss   10:29   0:00 sshd: root@pts/0 
root       768  0.0  0.0  24832  3388 ?        Ssl  Jan07   1:56 /usr/local/aegis/aegis_update/AliYunDunUpdate
root      1722  0.0  0.0  80740  2824 ?        Ssl  Jan03   2:00 /usr/sbin/aliyun-service
root      2328  0.0  0.0 110352  2168 ?        Ss   Jan03   0:00 nginx: master process nginx
root     23776  0.0  0.0 108548  1992 pts/0    Ss   10:30   0:00 -bash
root       842  0.0  0.0 251196  1932 ?        Sl   Jan03   0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
ntp       1119  0.0  0.0  26592  1672 ?        Ss   Jan03   0:02 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
root      1154  0.0  0.0 108336  1552 ?        S    Jan03   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/data/mysql --socket
root         1  0.0  0.0  19364  1536 ?        Ss   Jan03   0:00 /sbin/init
nscd       996  0.0  0.0 630204  1496 ?        Ssl  Jan03   0:05 /usr/sbin/nscd
root       939  0.0  0.0 116616  1424 ?        Sl   Jan03   5:13 /usr/local/cloudmonitor/wrapper/bin/./wrapper /usr/local/cl
root      1704  0.0  0.0 117332  1316 ?        Ss   Jan03   0:02 crond
root      1111  0.0  0.0  66628  1192 ?        Ss   Jan03   0:00 /usr/sbin/sshd
root     26317  0.0  0.0 110348  1116 pts/0    R+   17:40   0:00 ps aux --sort -rss
root       360  0.0  0.0  10912   996 ?        S<s  Jan03   0:00 /sbin/udevd -d
root      1762  0.0  0.0  10908   980 ?        S<   Jan03   0:00 /sbin/udevd -d
root      1763  0.0  0.0  10908   980 ?        S<   Jan03   0:00 /sbin/udevd -d
root      1744  0.0  0.0   4064   552 tty1     Ss+  Jan03   0:00 /sbin/mingetty /dev/tty1
root      1750  0.0  0.0   4064   552 tty4     Ss+  Jan03   0:00 /sbin/mingetty /dev/tty4
root      1746  0.0  0.0   4064   548 tty2     Ss+  Jan03   0:00 /sbin/mingetty /dev/tty2
root      1748  0.0  0.0   4064   548 tty3     Ss+  Jan03   0:00 /sbin/mingetty /dev/tty3
root      1752  0.0  0.0   4064   548 tty5     Ss+  Jan03   0:00 /sbin/mingetty /dev/tty5
root      1754  0.0  0.0   4064   548 tty6     Ss+  Jan03   0:00 /sbin/mingetty /dev/tty6
root         2  0.0  0.0      0     0 ?        S    Jan03   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jan03   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Jan03   0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Jan03   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Jan03   0:00 [watchdog/0]

8.vmstat
vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。

[root@iZ2ze7gl52onms2ithgtodZ apache-tomcat-saas]# vmstat
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 587428 178144 807096    0    0     1     6   21    4  7  3 89  0  0	
[root@iZ2ze7gl52onms2ithgtodZ apache-tomcat-saas]# vmstat -s
      3924684  total memory
      3337380  used memory
      2156380  active memory
      1005400  inactive memory
       587304  free memory
       178144  buffer memory
       807108  swap cache
      4194296  total swap
            0  used swap
      4194296  free swap
     14111955 non-nice user cpu ticks
          403 nice user cpu ticks
      6167455 system cpu ticks
    170956417 idle cpu ticks
        51025 IO-wait cpu ticks
            0 IRQ cpu ticks
         2305 softirq cpu ticks
            0 stolen cpu ticks
      2407046 pages paged in
     10653024 pages paged out
            0 pages swapped in
            0 pages swapped out
    426365627 interrupts
    480378631 CPU context switches
   1546501469 boot time
        90515 forks

服务器之间的文件传输

将测试服务器192.168.1.1的/usr/local/frp文件夹复制到正式服务器192.168.1.2的指定位置/usr/local/app下

正常拷贝

1.使用scp指令通过ssh协议传输

#scp -r /usr/local/frp root@192.168.1.2:/usr/local/app     //-r递归

提示是否保存密钥,并输入目标服务器的root密码(192.168.1.2),然后任务开始。
2.Ctrl+Z将任务暂停并挂起到后台:

[2]+  Stopped                 scp -r /usr/local/frp/ root@192.168.1.2:/usr/local/app

3.使用bg指令后台运行该任务

#bg 2

4.确认该任务状态

#jobs -l
[2]  24233 Running                 scp -r /usr/local/frp/ root@192.168.1.2:/usr/local/app &

完成后,frp文件夹就在192.168.1.2的/usr/local/app/frp

可参考 Linux查看、关闭、后台运行任务

免密拷贝

通过建立信任关系,可以实现不输入密码。

这里假设A的IP:192.168.10.1

B的IP:192.168.10.2

需要从A免密码输入复制文件至B。
1.在主机A上执行如下命令来生成配对密钥:

# ssh-keygen -t rsa 
  • 按照提示操作,注意,不要输入passphrase。提示信息如下(一路回车即可):

默认在 /root/.ssh/ 下生成id_rsaid_rsa.pub文件
2.在主机B上存放生成密钥
首先先确认主机B上是否已经存在了一个密钥authorized_keys(默认在/root/.ssh/authorized_keys )
如果存在,就将验证文件追加上去
A机器上执行:

# scp .ssh/id_rsa.pub root@192.168.10.2:/root/.ssh/a.pub

B机器上执行

# cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys

如果B机器不存在authorized_keys验证文件,直接将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys。

# scp .ssh/id_rsa.pub root@192.168.10.2:/root/.ssh/authorized_keys 

以后从A主机scp到B主机就不需要密码了。
使用此方法需要注意:复制的两台计算机需要用相同的账户名,这里都是用的root。为了安全起见,需要在两台机器中创建相同的账号,然后在A上用su命令切换至账号下,执行第1步,第二步中复制文件时可能.ssh目录并不存在,需要手动创建。

参考:Linux下用SCP无需输入密码传输文件

监测服务器网络状况

说明:
1、查看某个进程的带宽占用需要明确知道PID、进程名字、发送速度、接收速度。
2、很遗憾,在Linux原生的软件中没有这样的一款,只能额外装,最符合以上的情况就只有nethogs。
3、nethogs可以指定网卡,但是不能指定PID,这就是一个缺陷。

1.安装nethogs

# yum install -y nethogs       //CentOS下先装上EPEL

安装EPEL

2.使用方法:

[root@iz8vbia7opzm9l175id9izz canal-deployer-1.1.2]# nethogs
Ethernet link detected
                      Waiting for first packet to arrive (see sourceforge.net bug 1019381)

NetHogs version 0.8.5

    PID USER     PROGRAM                                                                     DEV        SENT      RECEIVED       
   9340 root     sshd: root@pts/1=                                                           eth0        0.343       0.094 KB/sec
      ? root     172.26.100.222:445-59.111.181.70:50003                                                  0.021       0.026 KB/sec
      ? root     172.26.100.222:11111-149.129.68.40:54482                                                0.011       0.014 KB/sec
      ? root     172.26.100.222:9290-176.119.4.49:47548                                                  0.000       0.000 KB/sec
      ? root     172.26.100.222:23901-5.188.206.38:56953                                                 0.000       0.000 KB/sec
   1060 root     /usr/local/aegis/aegis_client/aegis_10_57/AliYunDun                                     0.000       0.000 KB/sec
   8249 mysql    /usr/sbin/mysqld                                                                        0.000       0.000 KB/sec
      ? root     unknown TCP                                                                             0.000       0.000 KB/sec

  TOTAL                                                                                                  0.375       0.134 KB/sec
  • DEV列显示设备名,SEND是服务器发送的流量,RECEIVED服务器接收的流量。
  • 按 m 可以切换统计方式 : 流量速度KB/sec 或 总数{KB /B /m}
  • 图中第二行就是测试中的流量记录,表示59.111.181.70这台客户端去访问我的445 端口所占用的带宽。
  • 在PID 那一列,可以使用 lsof -p pid 查看进程测试。或者ps aux|grep PID查看进程情况
  • 用lsof -i :端口号,来查看是哪些进程在占用。如查看80端口lsof -i :445或者用netstat -tunlp |grep 445用于查看指定的端口进程情况

文档参考:
               1.Linux下进程/程序网络带宽占用情况查看工具 – NetHogs
               2.Linux查看当前使用的网卡 以及 查看某进程使用的网络带宽情况 以及 端口占用的情况

Linux配置SWAP分区

开启 SWAP

1、创建8GB用于交换分区的文件:

# dd if=/dev/zero of=/mnt/swap bs=1M count=8192  

注:block_size、number_of_block 大小可以自定义,比如 bs=1M count=1024 代表设置 1G 大小 SWAP 分区。

2、设置交换分区文件:

mkswap /mnt/swap

3、立即启用交换分区文件

swapon /mnt/swap

注:如果在 /etc/rc.local中有 swapoff -a 需要修改为 swapon -a

4、设置开机时自启用 SWAP 分区:

需要修改文件 /etc/fstab 中的 SWAP 行,添加

/mnt/swap swap swap defaults 0 0

注:/mnt/swap 路径可以修改,可以根据创建的 SWAP 文件具体路径来配置。

5、修改 swpapiness 参数

在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。

查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区:

可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 20% 时才使用 SWAP 分区:

echo 20 >/proc/sys/vm/swappiness

若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:

#vim /etc/sysctl.conf

修改为vm.swappiness=20,保存后输入

# sysctl -p

关闭 SWAP

当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。

1、free -m 查询 SWAP 分区设置:

[root@izj6c47bc02i5akvuyb8xzz target]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1839         506          62          24        1270        1137
Swap:          8191           0        8191

2、使用命令 swapoff 关闭 SWAP,比如:

swapoff /mnt/swap  

3、修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:

# /etc/fstab
# Created by anaconda on Fri Aug 18 03:51:14 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=59d9ca7b-4f39-4c0c-9334-c56c182076b5 /                       ext4    defaults        1 1
#/mnt/swap swap swap defaults 0 0

4、 通过 free -m 确认 SWAP 已经关闭。

[root@izj6c47bc02i5akvuyb8xzz target]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1839         506          62          24        1270        1137
Swap:             0           0           0

5、 swappiness 参数调整:
可以使用下述方法临时修改此参数,这里配置为 0%:

echo 0 >/proc/sys/vm/swappiness    

若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:

# vim /etc/sysctl.conf

设置vm.swappiness=0

# sysctl -p

参考文档:云服务器 ECS Linux SWAP 配置概要说明

Linux下将指令后台运行、关闭、查看任务

###1.&
直接加到指令的后面,就可以将该条指令放到后台运行,不建议在还需要交互的指令上使用&,会直接忽略(比如输入密码确认)

  • 运行java程序canal-receiver
#java -jar canal-receiver.jar start 1 &    //执行一个java程序

###2.Ctrl +Z

可以将一个正在前台执行的命令放到后台,并且处于暂停状态

  • 将本机上的/usr/local/frp_server/文件夹复制到39.98.41.26的/usr/local/目录下
#scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/ 
  • 此时复制开始,并占用当前界面,可以用Ctrl +Z放到后台
[2]+  Stopped                 scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/

 [命令号] + 状态                 执行指令

###3.jobs

查看当前有多少在后台运行的命令

jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

###4.fg
将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。

# job -l               //查看后台任务
[2]+  Stopped                 scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/
#fg 2                 //调起scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/指令,并在前台运行

###5.bg
将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。

  • 查看后台任务
# job -l               
[2]+  Stopped                 scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/
  • 调起scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/指令,并在后台运行
#bg 2              
[2]+ scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/ &
  • 确认状态
#jobs -l
[2]  24233 Running                 scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/ &

###6.kill
用法1:通过jobs命令查看job号(假设为num),然后执行kill %num

#jobs -l
[2]  24233 Running                 scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/ &
#kill 24233
Killed by signal 15.

用法2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
注:ps命令详解

#ps -aux            //a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
root     24271  0.0  0.0  57700  2184 pts/0    S    11:53   0:00 scp -r /usr/local/frp_server/ root@39.98.41.26:/usr/local/
#kill 24271
Killed by signal 15.

###7.nohup

如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)

#nohup java -jar canal-receiver.jar start 1 

###8.Ctrl+C
前台进程的终止

参考于:linux后台运行和关闭、查看后台任务

升级Linux下的python版本

安装指定版本的python

1.安装指定版本的python
以python-3.5.4为例,在/usr/local目录下创建python目录,将python安装到此目录下,原版本为2.7
创建文件夹

mkdir /usr/local/python3.5

下载

wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz

解压

tar xvf Python-3.5.4.tgz
cd python-3.5.4

安装

./configure --prefix=/usr/local/python3.5     //安装到/usr/local/python3.5这个目录中
make
make install

安装后/usr/local/python3.5的目录层次

[root@iz8vbia7opzm9l175id9izz python3.5]# ll
总用量 20268
drwxr-xr-x  2 root     root         4096 2月  21 20:57 bin
drwxr-xr-x  3 root     root         4096 2月  21 20:45 include
drwxr-xr-x  4 root     root         4096 2月  21 20:45 lib
drwxr-xr-x 17 tempuser tempuser     4096 2月  21 20:44 Python-3.5.4
-rw-r--r--  1 root     root     20733411 2月  21 20:29 Python-3.5.4.tgz
drwxr-xr-x  3 root     root         4096 2月  21 20:45 share

更新python环境配置

2.将/usr/bin目录下的原来的Python的软连接重新更名
保险起见先将/usr/bin下原版本的python备份(按实际文件路径而定)

cp /usr/bin/python /usr/bin/python.bk
cp /usr/bin/python2.7 /usr/bin/python2,7.bk
mv /usr/bin/python /usr/bin/python2.7

改完后在访问python就会出现 -bash: /usr/bin/python: 没有那个文件或目录

3、将新版本大的python的软连接增加到/usr/bin目录下

ln -s /usr/local/python3.5/bin/python3.5 /usr/bin/python

4、将版本python3.5命令加入环境变量

vim /etc/profile

文末添加 export PATH=$PATH:/usr/local/python3.5/bin
文件生效

source /etc/profile

5、检查python版本

[root@iz8vbia7opzm9l175id9izz bin]# python -V
Python 3.5.4

附:常见问题

1.pip指令异常:
-bash: /usr/bin/pip: /usr/bin/python2: 坏的解释器: 没有那个文件或目录

说明/usr/bin/python2引用的pip路径有误

vim /usr/bin/pip

发现原本第一行为 #!/usr/bin/python2 不是安装过程指定的python,手动修改为 #!/usr/bin/python2
问题解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值