主要讲解专用内存监控工具的使用:vmstat、pmap命令的使用。



命令概览:

vmstat 显示虚拟内存状态
pmap 报告进程与内存映射关系

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。

    pmap命令用于报告进程的内存映射关系,是Linux调试及运维一个很好的工具



vmstat命令详解:

  命令格式:vmstat  [options]  [delay [count]]

用法:
vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
上面各选项的用法:
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息。

上图信息说明:

procs(进程):
r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;(单核心如果大于4个的话,代表CPU老式了),【运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)】
b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;【 等待IO的进程数量】
memory(内存):
swpd:交换内存使用总量;【使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能】
free:空闲的物理内存总量;
buffer:用于buffer的内存总量;
cache:用于cache的内存总量;【如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小】
swap(交换分区):
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap的速率(kb/s)
io
bi:从块设备读入数据到系统(内存)的速度(kb/s)
bo:保存数据至块设备的速率(kb/s)
  【注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大】
system
in:interrupts,中断速率;
cs:context switch, 上下文(进程)切换的速率;
  【注意:上面2个值越大,会看到由内核消耗的CPU时间会越大】
cpu(以百分比表示)
us: user space 【用户进程执行时间百分比(user time) us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速】
sy:system space 【内核系统进程执行时间百分比(system time) sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因】
id:idle     【空闲时间百分比】
wa:wait      【 IO等待时间百分比 wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)】
st: stolen 被虚拟化技术偷走的时间比例

具体不懂的参数,也可以参考博文:http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html


示例1:# vmstat

[root@test1 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 548328 68992 225356 0 0 2 4 14 26 0 0 99 0 0

示例2:显示活跃和非活跃内存,显示增加了inact和active列

  # vmstat –a

[root@test1 ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 0 544568 136496 181052 0 0 2 4 14 26 0 0 99 0 0

示例3:查看内存使用的详细信息

  # vmstat -s

[root@test1 ~]# vmstat -s
1004768 total memory
460324 used memory
181108 active memory
136524 inactive memory
544444 free memory
69112 buffer memory
225364 swap cache
694268 total swap
0 used swap
694268 free swap
7676 non-nice user cpu ticks
159 nice user cpu ticks
20991 system cpu ticks
8890162 idle cpu ticks
13503 IO-wait cpu ticks
151 IRQ cpu ticks
6833 softirq cpu ticks
0 stolen cpu ticks
212693 pages paged in
397093 pages paged out
0 pages swapped in
0 pages swapped out
1246321 interrupts
2315434 CPU context switches
1528692781 boot time
12891 forks

示例4:查看磁盘的读/写

  # vmstat -d

[root@test1 ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
ram2 0 0 0 0 0 0 0 0 0 0
ram3 0 0 0 0 0 0 0 0 0 0
ram4 0 0 0 0 0 0 0 0 0 0
ram5 0 0 0 0 0 0 0 0 0 0
ram6 0 0 0 0 0 0 0 0 0 0
ram7 0 0 0 0 0 0 0 0 0 0
ram8 0 0 0 0 0 0 0 0 0 0
ram9 0 0 0 0 0 0 0 0 0 0
ram10 0 0 0 0 0 0 0 0 0 0
ram11 0 0 0 0 0 0 0 0 0 0
ram12 0 0 0 0 0 0 0 0 0 0
ram13 0 0 0 0 0 0 0 0 0 0
ram14 0 0 0 0 0 0 0 0 0 0
ram15 0 0 0 0 0 0 0 0 0 0
loop0 0 0 0 0 0 0 0 0 0 0
loop1 0 0 0 0 0 0 0 0 0 0
loop2 0 0 0 0 0 0 0 0 0 0
loop3 0 0 0 0 0 0 0 0 0 0
loop4 0 0 0 0 0 0 0 0 0 0
loop5 0 0 0 0 0 0 0 0 0 0
loop6 0 0 0 0 0 0 0 0 0 0
loop7 0 0 0 0 0 0 0 0 0 0
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
sr0 292 617 3900 1519 0 0 0 0 0 1
sda 10899 3670 418286 60106 34022 65242 794234 459408 0 253

示例5:查看 /dev/sda1磁盘的读/写

  # vmstat -p /dev/sda1

[root@test1 ~]# vmstat -p /dev/sda1
sda1 reads read sectors writes requested writes
585 4612 3 18

示例6:没两秒采集一次服务器状态,只采集一次

  # vmstat 2 1

[root@test1 ~]# vmstat 2 1  【每2s采集一次数据,只采集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 548220 69208 225372 0 0 2 4 14 26 0 0 99 0 0
[root@test1 ~]# vmstat 2 2  【每2s采集一次数据,采集2次】
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 548188 69208 225372 0 0 2 4 14 26 0 0 99 0 0
0 0 0 548172 69208 225372 0 0 0 0 13 14 0 0 100 0 0
[root@test1 ~]# vmstat 2 3  【每2s采集一次数据,采集3次】
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 548220 69208 225372 0 0 2 4 14 26 0 0 99 0 0
0 0 0 548172 69208 225372 0 0 0 0 13 13 0 0 100 0 0
0 0 0 548172 69208 225372 0 0 0 0 12 11 0 0 100 0 0

示例7:每2s采集一次服务器

  # vmstat 2   【不说明采集次数的话,系统会一直采集着】





pmap命令详解

  作用: <--- 用于报告进程的内存映射关系 --->

内存与进程之间的关系也可以通过文件来查看:/proc/PID/maps  【PID指进程的PID】

语法格式:
pmap [ -x | -d ] [ -q ] pids...
pmap -V
参数说明:
 -x   extended       Show the extended format. 显示扩展格式
 -d   device         Show the device format.   显示设备格式
 -q   quiet          Do not display some header/footer lines. 不显示头尾行
 -V   show version   Displays version of program. 显示版本
pids 进程的PID号
扩展格式和设备格式域:
Address: start address of map 映像起始地址
Kbytes: size of map in kilobytes 映像大小
RSS: resident set size in kilobytes 驻留集大小
Dirty: dirty pages (both shared and private) in kilobytes 脏页大小
Mode: permissions on map 映像权限: r=read, w=write, x=execute, s=shared, p=private (copy on write)
Mapping: file backing the map , or '[ anon ]' for allocated memory, or '[ stack ]' for the program stack. 映像支持文件,[anon]为已分配内存 [stack]为程序堆栈
Offset: offset into the file 文件偏移
Device: device name (major:minor) 设备名

示例1:查看设备1的设备格式

  # pmap -d 1

root@test1 ~]# pmap -d 1
1: /sbin/init
Address Kbytes Mode Offset Device Mapping
00007f6e5cb24000 48 r-x-- 0000000000000000 008:00003 libnss_files-2.12.so
00007f6e5cb30000 2048 ----- 000000000000c000 008:00003 libnss_files-2.12.so
00007f6e5cd30000 4 r---- 000000000000c000 008:00003 libnss_files-2.12.so
00007f6e5cd31000 4 rw--- 000000000000d000 008:00003 libnss_files-2.12.so
00007f6e5cd32000 1576 r-x-- 0000000000000000 008:00003 libc-2.12.so
00007f6e5cebc000 2048 ----- 000000000018a000 008:00003 libc-2.12.so
00007f6e5d0bc000 16 r---- 000000000018a000 008:00003 libc-2.12.so
00007f6e5d0c0000 4 rw--- 000000000018e000 008:00003 libc-2.12.so
00007f6e5d0c1000 20 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5d0c6000 88 r-x-- 0000000000000000 008:00003 libgcc_s-4.4.7-20120601.so.1
00007f6e5d0dc000 2044 ----- 0000000000016000 008:00003 libgcc_s-4.4.7-20120601.so.1
00007f6e5d2db000 4 rw--- 0000000000015000 008:00003 libgcc_s-4.4.7-20120601.so.1
00007f6e5d2dc000 28 r-x-- 0000000000000000 008:00003 librt-2.12.so
00007f6e5d2e3000 2044 ----- 0000000000007000 008:00003 librt-2.12.so
00007f6e5d4e2000 4 r---- 0000000000006000 008:00003 librt-2.12.so
00007f6e5d4e3000 4 rw--- 0000000000007000 008:00003 librt-2.12.so
00007f6e5d4e4000 92 r-x-- 0000000000000000 008:00003 libpthread-2.12.so
00007f6e5d4fb000 2048 ----- 0000000000017000 008:00003 libpthread-2.12.so
00007f6e5d6fb000 4 r---- 0000000000017000 008:00003 libpthread-2.12.so
00007f6e5d6fc000 4 rw--- 0000000000018000 008:00003 libpthread-2.12.so
00007f6e5d6fd000 16 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5d701000 256 r-x-- 0000000000000000 008:00003 libdbus-1.so.3.4.0
00007f6e5d741000 2044 ----- 0000000000040000 008:00003 libdbus-1.so.3.4.0
00007f6e5d940000 4 r---- 000000000003f000 008:00003 libdbus-1.so.3.4.0
00007f6e5d941000 4 rw--- 0000000000040000 008:00003 libdbus-1.so.3.4.0
00007f6e5d942000 36 r-x-- 0000000000000000 008:00003 libnih-dbus.so.1.0.0
00007f6e5d94b000 2044 ----- 0000000000009000 008:00003 libnih-dbus.so.1.0.0
00007f6e5db4a000 4 r---- 0000000000008000 008:00003 libnih-dbus.so.1.0.0
00007f6e5db4b000 4 rw--- 0000000000009000 008:00003 libnih-dbus.so.1.0.0
00007f6e5db4c000 96 r-x-- 0000000000000000 008:00003 libnih.so.1.0.0
00007f6e5db64000 2044 ----- 0000000000018000 008:00003 libnih.so.1.0.0
00007f6e5dd63000 4 r---- 0000000000017000 008:00003 libnih.so.1.0.0
00007f6e5dd64000 4 rw--- 0000000000018000 008:00003 libnih.so.1.0.0
00007f6e5dd65000 128 r-x-- 0000000000000000 008:00003 ld-2.12.so
00007f6e5df75000 20 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5df83000 4 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5df84000 4 r---- 000000000001f000 008:00003 ld-2.12.so
00007f6e5df85000 4 rw--- 0000000000020000 008:00003 ld-2.12.so
00007f6e5df86000 4 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5df87000 140 r-x-- 0000000000000000 008:00003 init
00007f6e5e1a9000 8 r---- 0000000000022000 008:00003 init
00007f6e5e1ab000 4 rw--- 0000000000024000 008:00003 init
00007f6e5ed77000 264 rw--- 0000000000000000 000:00000 [ anon ]
00007fffefae8000 84 rw--- 0000000000000000 000:00000 [ stack ]
00007fffefbe5000 4 r-x-- 0000000000000000 000:00000 [ anon ]
ffffffffff600000 4 r-x-- 0000000000000000 000:00000 [ anon ]
mapped: 19364K writeable/private: 452K shared: 0K

最后一行的值
  mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz
  writeable/private  表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小      
  shared 表示进程和其他进程共享的内存大小

示例2:查看进程1的设备格式,不显示头尾行

  # pmap -dp 1

[root@test1 ~]# pmap -dq 1
1: /sbin/init
00007f6e5cb24000 48 r-x-- 0000000000000000 008:00003 libnss_files-2.12.so
00007f6e5cb30000 2048 ----- 000000000000c000 008:00003 libnss_files-2.12.so
00007f6e5cd30000 4 r---- 000000000000c000 008:00003 libnss_files-2.12.so
00007f6e5cd31000 4 rw--- 000000000000d000 008:00003 libnss_files-2.12.so
00007f6e5cd32000 1576 r-x-- 0000000000000000 008:00003 libc-2.12.so
00007f6e5cebc000 2048 ----- 000000000018a000 008:00003 libc-2.12.so
00007f6e5d0bc000 16 r---- 000000000018a000 008:00003 libc-2.12.so
00007f6e5d0c0000 4 rw--- 000000000018e000 008:00003 libc-2.12.so
00007f6e5d0c1000 20 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5d0c6000 88 r-x-- 0000000000000000 008:00003 libgcc_s-4.4.7-20120601.so.1
00007f6e5d0dc000 2044 ----- 0000000000016000 008:00003 libgcc_s-4.4.7-20120601.so.1
00007f6e5d2db000 4 rw--- 0000000000015000 008:00003 libgcc_s-4.4.7-20120601.so.1
00007f6e5d2dc000 28 r-x-- 0000000000000000 008:00003 librt-2.12.so
00007f6e5d2e3000 2044 ----- 0000000000007000 008:00003 librt-2.12.so
00007f6e5d4e2000 4 r---- 0000000000006000 008:00003 librt-2.12.so
00007f6e5d4e3000 4 rw--- 0000000000007000 008:00003 librt-2.12.so
00007f6e5d4e4000 92 r-x-- 0000000000000000 008:00003 libpthread-2.12.so
00007f6e5d4fb000 2048 ----- 0000000000017000 008:00003 libpthread-2.12.so
00007f6e5d6fb000 4 r---- 0000000000017000 008:00003 libpthread-2.12.so
00007f6e5d6fc000 4 rw--- 0000000000018000 008:00003 libpthread-2.12.so
00007f6e5d6fd000 16 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5d701000 256 r-x-- 0000000000000000 008:00003 libdbus-1.so.3.4.0
00007f6e5d741000 2044 ----- 0000000000040000 008:00003 libdbus-1.so.3.4.0
00007f6e5d940000 4 r---- 000000000003f000 008:00003 libdbus-1.so.3.4.0
00007f6e5d941000 4 rw--- 0000000000040000 008:00003 libdbus-1.so.3.4.0
00007f6e5d942000 36 r-x-- 0000000000000000 008:00003 libnih-dbus.so.1.0.0
00007f6e5d94b000 2044 ----- 0000000000009000 008:00003 libnih-dbus.so.1.0.0
00007f6e5db4a000 4 r---- 0000000000008000 008:00003 libnih-dbus.so.1.0.0
00007f6e5db4b000 4 rw--- 0000000000009000 008:00003 libnih-dbus.so.1.0.0
00007f6e5db4c000 96 r-x-- 0000000000000000 008:00003 libnih.so.1.0.0
00007f6e5db64000 2044 ----- 0000000000018000 008:00003 libnih.so.1.0.0
00007f6e5dd63000 4 r---- 0000000000017000 008:00003 libnih.so.1.0.0
00007f6e5dd64000 4 rw--- 0000000000018000 008:00003 libnih.so.1.0.0
00007f6e5dd65000 128 r-x-- 0000000000000000 008:00003 ld-2.12.so
00007f6e5df75000 20 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5df83000 4 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5df84000 4 r---- 000000000001f000 008:00003 ld-2.12.so
00007f6e5df85000 4 rw--- 0000000000020000 008:00003 ld-2.12.so
00007f6e5df86000 4 rw--- 0000000000000000 000:00000 [ anon ]
00007f6e5df87000 140 r-x-- 0000000000000000 008:00003 init
00007f6e5e1a9000 8 r---- 0000000000022000 008:00003 init
00007f6e5e1ab000 4 rw--- 0000000000024000 008:00003 init
00007f6e5ed77000 264 rw--- 0000000000000000 000:00000 [ anon ]
00007fffefae8000 84 rw--- 0000000000000000 000:00000 [ stack ]
00007fffefbe5000 4 r-x-- 0000000000000000 000:00000 [ anon ]
ffffffffff600000 4 r-x-- 0000000000000000 000:00000 [ anon ]

示例3:查看进程1的扩展格式

  #  pmap -x 1

[root@test1 ~]# pmap -x 1
1: /sbin/init
Address Kbytes RSS Dirty Mode Mapping
00007f6e5cb24000 48 24 0 r-x-- libnss_files-2.12.so
00007f6e5cb30000 2048 0 0 ----- libnss_files-2.12.so
00007f6e5cd30000 4 4 4 r---- libnss_files-2.12.so
00007f6e5cd31000 4 4 4 rw--- libnss_files-2.12.so
00007f6e5cd32000 1576 548 0 r-x-- libc-2.12.so
00007f6e5cebc000 2048 0 0 ----- libc-2.12.so
00007f6e5d0bc000 16 16 16 r---- libc-2.12.so
00007f6e5d0c0000 4 4 4 rw--- libc-2.12.so
00007f6e5d0c1000 20 20 20 rw--- [ anon ]
00007f6e5d0c6000 88 16 0 r-x-- libgcc_s-4.4.7-20120601.so.1
00007f6e5d0dc000 2044 0 0 ----- libgcc_s-4.4.7-20120601.so.1
00007f6e5d2db000 4 4 4 rw--- libgcc_s-4.4.7-20120601.so.1
00007f6e5d2dc000 28 20 0 r-x-- librt-2.12.so
00007f6e5d2e3000 2044 0 0 ----- librt-2.12.so
00007f6e5d4e2000 4 4 4 r---- librt-2.12.so
00007f6e5d4e3000 4 4 4 rw--- librt-2.12.so
00007f6e5d4e4000 92 56 0 r-x-- libpthread-2.12.so
00007f6e5d4fb000 2048 0 0 ----- libpthread-2.12.so
00007f6e5d6fb000 4 4 4 r---- libpthread-2.12.so
00007f6e5d6fc000 4 4 4 rw--- libpthread-2.12.so
00007f6e5d6fd000 16 4 4 rw--- [ anon ]
00007f6e5d701000 256 208 0 r-x-- libdbus-1.so.3.4.0
00007f6e5d741000 2044 0 0 ----- libdbus-1.so.3.4.0
00007f6e5d940000 4 4 4 r---- libdbus-1.so.3.4.0
00007f6e5d941000 4 4 4 rw--- libdbus-1.so.3.4.0
00007f6e5d942000 36 32 0 r-x-- libnih-dbus.so.1.0.0
00007f6e5d94b000 2044 0 0 ----- libnih-dbus.so.1.0.0
00007f6e5db4a000 4 4 4 r---- libnih-dbus.so.1.0.0
00007f6e5db4b000 4 4 4 rw--- libnih-dbus.so.1.0.0
00007f6e5db4c000 96 84 0 r-x-- libnih.so.1.0.0
00007f6e5db64000 2044 0 0 ----- libnih.so.1.0.0
00007f6e5dd63000 4 4 4 r---- libnih.so.1.0.0
00007f6e5dd64000 4 4 4 rw--- libnih.so.1.0.0
00007f6e5dd65000 128 108 0 r-x-- ld-2.12.so
00007f6e5df75000 20 20 20 rw--- [ anon ]
00007f6e5df83000 4 4 4 rw--- [ anon ]
00007f6e5df84000 4 4 4 r---- ld-2.12.so
00007f6e5df85000 4 4 4 rw--- ld-2.12.so
00007f6e5df86000 4 4 4 rw--- [ anon ]
00007f6e5df87000 140 128 0 r-x-- init
00007f6e5e1a9000 8 8 8 r---- init
00007f6e5e1ab000 4 4 4 rw--- init
00007f6e5ed77000 264 148 148 rw--- [ anon ]
00007fffefae8000 84 20 20 rw--- [ stack ]
00007fffefbe5000 4 4 0 r-x-- [ anon ]
ffffffffff600000 4 0 0 r-x-- [ anon ]
---------------- ------ ------ ------
total kB 19364 1540 312

示例4:循环显示进程3066的设备格式的最后1行,间隔2秒,

  #  while true; do pmap -d  3066 | tail -1; sleep 2; done

pmap命令文章来源:http://www.cnblogs.com/ggjucheng/p/3348439.html

【进程/作业管理】篇章一:Linux进程及管理(专用内存监控类工具)------【vmstat、pmap】的更多相关文章

  1. 【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat

    glances   dstat   glances命令详解 相对于htop工具的使用,这里介绍一下glances工具的使用,我个人是比较喜欢这款工具的,主要就是由于glances这款工具可以将系统状态 ...

  2. 【进程/作业】篇章一:Linux进程及其管理(进程的管理基础)

    概述:监控系统各方面的性能,保障各类服务的有序运行,是运维工作的重要组成部分,本篇就介绍一次常用的系统监控命令和相关的参数说明 具体包含以下几部分: 1.进程的管理基础 ,主要是讲一下概念性的东西 2 ...

  3. Linux进程管理描述符 task_struct

    转:http://blog.csdn.net/hongchangfirst/article/details/7075026 大家都知道进程,可是知道linux是怎么管理其进程的吗?每一个进程都有一个进 ...

  4. Linux 进程必知必会

    上一篇文章只是简单的描述了一下 Linux 基本概念,通过几个例子来说明 Linux 基本应用程序,然后以 Linux 基本内核构造来结尾.那么本篇文章我们就深入理解一下 Linux 内核来理解 Li ...

  5. Linux性能监控top及vmstat命令

    监控的工具---top 第一行: 03:07:27 当前系统时间 3 days, 18:58 系统已经运行了3天18小时58分钟(在这期间没有重启过) 4 users load average: 0. ...

  6. linux 内存泄露检测工具

    Valgrind Memcheck 一个强大开源的程序检测工具 下载地址:http://valgrind.org/downloads/current.html Valgrind快速入门指南:http: ...

  7. 【进程/作业管理】篇章一:Linux进程及其管理(进程管理类工具)----pstree、ps、top、htop、kill、(killall、pkill、pgrep、pidof)

    主要讲解进程管理类命令及工具的使用:pstree.ps.top.htop.kill.(killall.pkill.pgrep.pidof) pstree 以树状图的方式展现进程之间的派生关系,显示效果 ...

  8. linux 进程管理和内存分配

    1.进程相关概念 进程:正在运行中的程序 内核功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集合 进程 ID(Pro ...

  9. Linux进程管理及while循环

    目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...

随机推荐

  1. C语言讲义——内联函数

    如果一些函数被频繁调用,不断地有函数入栈(Stack),会造成栈空间的大量消耗. 对应这种问题,可以使用内联函数(inline). 编译器会将内联函数的代码整段插入到调用的位置. #include & ...

  2. BackgroundService 大佬教的好

    BackgroundService 源码分析 因为换了工作也有两个多月没有写博客啦,因为跟着红超哥(大佬)一直在学习和做项目(反正就是在潜心修炼,大佬每天也是在我十万个为什么中度过的.) 最近在做一个 ...

  3. 推荐:国产etl调度工具Taskctl web应用版,0元永久授权

    写在前面 2020年疫情席卷全球,更是对整个市场经济造成了严重影响,年初疫情肆虐,西方世界单方面的科技.经济封锁,国际关系吃紧.....导致很多中小型企业业务链受阻,大型企业经费资金吃紧,轮班制导致公 ...

  4. mysql GTID主从复制故障后不停机恢复同步流程

    GTID实现主从复制数据同步 GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组成,这个全局事务ID不仅仅在原始服务器上唯一,在所有主从关系的m ...

  5. Event Loop - 事件队列

    Event Loop 定义: event - 事件 loop - 循环,既然叫事件循环,那么循环的点在哪? 循环的是一个又一个的任务队列,这些任务队列由宏任务和微任务构成 两条原则 一次处理一个任务 ...

  6. Java中的Set对象去重

    前言部分 Set<T> 去重相信大家一定不陌生,尤其是在 Set<String>.Set<Integer> 等等,但是在使用 Set<实体> ,在不重写 ...

  7. 【入门】ZooKeeper 相关概念总结

    1. 前言 相信大家对 ZooKeeper 应该不算陌生.但是你真的了解 ZooKeeper 到底有啥用不?如果别人/面试官让你给他讲讲对于 ZooKeeper 的认识,你能回答到什么地步呢? 拿我自 ...

  8. JavaWeb知识梳理

    目录 JavaWeb Web服务器 技术讲解 Web服务器 Tomcat Http Maven pom.xml Servlet HelloServlet Servlet原理 Mapping Servl ...

  9. PyQt(Python+Qt)学习随笔:QMainWindow的addDockWidget方法增加QDockWidget停靠窗到主窗口

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 DockWidget除了放在QMainWindow窗口内外,也可以放在 ...

  10. 关于Python中中文文本文件使用二进制方式读取后的解码UnicodeDecodeError问题

    最近老猿在进行文件操作的验证测试,发现对于中文文本文件如果使用二进制方式打开,返回的类型是bytes,如果要转换成可读的字符串信息需要进行解码.可是老猿使用decode()或decode(" ...