linux 堆栈——内存泄漏

本文介绍内存泄漏的概念、原因及检测方法,特别关注C语言程序中内存分配与释放的重要性。文章提供了如何观察内存泄漏的两个步骤,并展示了如何使用命令行工具识别潜在的内存泄漏进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内存泄漏

有些进程并不需要管理他们的动态内存的使用。当需要时,它们简单地通过分配来获得,从来不用担心如何释放内存。这类程序包括编译器和其他一些运行一段固定的(或有限的)时间然后终止程序。当这种类型的程序终止时,所有内存都会被自动化回收。细心检查每一块内存是否需要回收纯属浪费时间,因为它们们(指前面说到的那些进程、应用程序)不会在被使用。

其他程序的生存时间要长一点。有些工具如日历管理器、邮件工具,以及操作系统本身经常需要数日设置数周运行,并需要管理动态内存的分配和回收。由于C语言通常并不使用垃圾收集器(自动确认并回收不在使用的内存块),这些C程序在使用malloc()和free()时,不得不非常慎重。堆经常回出现两种类型的问题:

  • 释放或改写仍在使用的内存——称为“内存损坏”;
  • 未释放不再使用的内存——称为“内存泄漏”

这是最难被调试发现的问题之一。如果每次已分配的内存块不再使用,而程序元并不释放它们,进程就会一边分配越来越多的内存,一边却并不释放哪些不再使用部分的内存。

每次调用malloc分配内存时,主义在以后要调用相应的free来释放它。如果不知道如何调用free与先前的malloc相对应,那么这种情况很可能已经造成内存泄漏了。一种简单的方法就是:在可能的时候使用alloca()来分配动态内存,以免上述情况,当离开调用alloca的函数时,它所分配的内存就会被释放掉。

但是显然,这种方法并不适用于那些,比创建他们的杉树生命期更长的结构,但如果对象的生命期在该函数结束前便已经终止,这种建立在堆栈上的动态内存分配是一种开销很小的选择。有些人不提倡使用alloca(),因为它并不是一种可移植的方法,如果处理器在硬件上不支持堆在,alloca()就很难高效的实现。

我们使用“内存泄漏”这个词,是因为一种稀有的资源被一个进程榨干。内存泄漏的主要可见症状就是,罪魁的进程速度减慢。原因是大体积的进程更有可能被系统换出(系统发生了进程切换,进程之间的调度),让别的进程运行,而且大的进程在换进换出时,花费的时间也更多。即使(从定义上将)泄漏的内存本身并不被引用,但是它仍可能存在页面中(内容自然是垃圾,没有用的),这样就增加了进程的工作页数量,降低了性能。

另外一点是,泄漏的内存往往比忘记释放的结构体要大,因为malloc所分配的内存通常会圆整为下一个大于申请数量的2的整数次方(如果申请了212B,会圆整为256B)。在资源有限的情况下,即使引起内存泄漏的进程并不运行,整个系统的运行速度也会被拖慢。从理论上讲,进程的最大地址空间可多达4GB。事实上在进程所泄漏的内存远未达到这个数量时,磁盘的交换区早已消耗殆尽。如果你在阅读本书的时间现在(1994)超过5年,也就是20世纪末时,你可能会对这个早已过时的限制忍俊不已。——事实上现在(2002)的主流及其仍然为32位,所以单个进程的空间显示仍为4GB,不过磁盘的容量已大大增加,如果出现诚征达到4GB而交换区尚未耗尽(理论上讲)这种情况也是有可能的。

如何检查内存泄漏?观察内存泄漏是一个两步骤的过程。

首先,使用swap命令观察还有多事啊可以交换的空间;

$/usr/sbin/swap -s

在一两分钟内,输入该指令三到四次,看看可用的交换区是否在减少。还可以使用其他的一些/usr/bin/*stat工具,如netstat、vmstat等。如果发现不断有内存被分配且从不释放,一个可能的解释就是有个进程出现了内存泄漏。

第二个步骤是,使用“ps -lu 用户名”命令来显示所有进程的大小。

确定可疑的进程,看看它是不是该为内存泄漏负责。你可能已经知道那个进程是罪魁祸首,不烦可以使用“ps -lu 用户名”命令来显示所有进程的大小,标题为SZ的列就是以页面数表示进程的大小(如果一定想知道以KB表示页面的大小,可以使用pagesize命令)。通样次数反复重复这个命令,可以发现,任何动态分配内存的进程的大小都在增长。如果是一个进程看上去不断增长而从不缩小,它就有可能出现了内存泄漏。一个非常悲哀的现实是,管理动态内存时一项非常困难的编程任务。

如下面所示:

个人用户

zhang@ubuntu1404198:/mnt/external/zhang$ ps -lu zhang
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  2847     1  0  80   0 - 3293213 futex_ ?      1-01:27:35 java
0 R  1000  5462 15059  0  80   0 -  4295 -      pts/1    00:00:00 ps
5 S  1000  9471  9338  0  80   0 - 66651 -      ?        00:00:00 sshd
0 S  1000  9472  9471  0  80   0 -  5555 wait_w pts/2    00:00:02 bash
5 S  1000 15058 14923  0  80   0 - 66678 -      ?        00:00:15 sshd
0 S  1000 15059 15058  0  80   0 -  5594 wait   pts/1    00:00:05 bash
5 S  1000 28153 28082  0  80   0 - 66644 -      ?        00:00:09 sshd
0 S  1000 28154 28153  0  80   0 -  5553 wait_w pts/0    00:00:00 bash
zhang@ubuntu1404198:/mnt/external/jenkins/zhang$

root用户

zhang@ubuntu1404198:/mnt/external/jenkins/zhang$ ps -lu root
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 -  8384 -      ?        00:00:52 init
1 S     0     2     0  0  80   0 -     0 -      ?        00:00:19 kthreadd
1 S     0     3     2  0  80   0 -     0 -      ?        00:38:37 ksoftirqd/0
1 S     0     5     2  0  60 -20 -     0 -      ?        00:00:00 kworker/0:0H
1 S     0     6     2  0  80   0 -     0 -      ?        00:00:00 kworker/u32:0
1 S     0     8     2  0  80   0 -     0 -      ?        01:50:41 rcu_sched
1 S     0     9     2  0  80   0 -     0 -      ?        00:00:00 rcu_bh
1 S     0    10     2  0 -40   - -     0 -      ?        00:05:21 migration/0
5 S     0    11     2  0 -40   - -     0 -      ?        00:01:36 watchdog/0
5 S     0    12     2  0 -40   - -     0 -      ?        00:01:11 watchdog/1
1 S     0    13     2  0 -40   - -     0 -      ?        00:05:16 migration/1
1 S     0    14     2  0  80   0 -     0 -      ?        00:09:15 ksoftirqd/1
1 S     0    16     2  0  60 -20 -     0 -      ?        00:00:00 kworker/1:0H
5 S     0    17     2  0 -40   - -     0 -      ?        00:01:11 watchdog/2
1 S     0    18     2  0 -40   - -     0 -      ?        00:05:10 migration/2
1 S     0    19     2  0  80   0 -     0 -      ?        00:09:19 ksoftirqd/2
1 S     0    21     2  0  60 -20 -     0 -      ?        00:00:00 kworker/2:0H
5 S     0    22     2  0 -40   - -     0 -      ?        00:01:14 watchdog/3
1 S     0    23     2  0 -40   - -     0 -      ?        00:05:05 migration/3
1 S     0    24     2  0  80   0 -     0 -      ?        00:09:17 ksoftirqd/3
1 S     0    26     2  0  60 -20 -     0 -      ?        00:00:00 kworker/3:0H
5 S     0    27     2  0 -40   - -     0 -      ?        00:01:16 watchdog/4
1 S     0    28     2  0 -40   - -     0 -      ?        00:05:03 migration/4
1 S     0    29     2  0  80   0 -     0 -      ?        00:09:27 ksoftirqd/4
1 S     0    31     2  0  60 -20 -     0 -      ?        00:00:00 kworker/4:0H
5 S     0    32     2  0 -40   - -     0 -      ?        00:01:13 watchdog/5
1 S     0    33     2  0 -40   - -     0 -      ?        00:04:59 migration/5
1 S     0    34     2  0  80   0 -     0 -      ?        00:09:19 ksoftirqd/5
1 S     0    36     2  0  60 -20 -     0 -      ?        00:00:00 kworker/5:0H
5 S     0    37     2  0 -40   - -     0 -      ?        00:01:13 watchdog/6
1 S     0    38     2  0 -40   - -     0 -      ?        00:05:00 migration/6
1 S     0    39     2  0  80   0 -     0 -      ?        00:09:03 ksoftirqd/6
1 S     0    41     2  0  60 -20 -     0 -      ?        00:00:00 kworker/6:0H
5 S     0    42     2  0 -40   - -     0 -      ?        00:01:11 watchdog/7
1 S     0    43     2  0 -40   - -     0 -      ?        00:04:56 migration/7
1 S     0    44     2  0  80   0 -     0 -      ?        00:09:07 ksoftirqd/7
1 S     0    45     2  0  80   0 -     0 -      ?        00:00:00 kworker/7:0
1 S     0    46     2  0  60 -20 -     0 -      ?        00:00:00 kworker/7:0H
5 S     0    47     2  0 -40   - -     0 -      ?        00:01:20 watchdog/8
1 S     0    48     2  0 -40   - -     0 -      ?        00:05:09 migration/8
1 S     0    49     2  0  80   0 -     0 -      ?        00:12:33 ksoftirqd/8
1 S     0    51     2  0  60 -20 -     0 -      ?        00:00:00 kworker/8:0H
5 S     0    53     2  0 -40   - -     0 -      ?        00:01:10 watchdog/9
1 S     0    54     2  0 -40   - -     0 -      ?        00:05:24 migration/9
1 S     0    55     2  0  80   0 -     0 -      ?        00:08:44 ksoftirqd/9
1 S     0    57     2  0  60 -20 -     0 -      ?        00:00:00 kworker/9:0H
5 S     0    58     2  0 -40   - -     0 -      ?        00:01:09 watchdog/10
1 S     0    59     2  0 -40   - -     0 -      ?        00:05:16 migration/10
1 S     0    60     2  0  80   0 -     0 -      ?        00:08:48 ksoftirqd/10
1 S     0    61     2  0  80   0 -     0 -      ?        00:00:00 kworker/10:0
1 S     0    62     2  0  60 -20 -     0 -      ?        00:00:00 kworker/10:0H
5 S     0    63     2  0 -40   - -     0 -      ?        00:01:14 watchdog/11
1 S     0    64     2  0 -40   - -     0 -      ?        00:05:13 migration/11
1 S     0    65     2  0  80   0 -     0 -      ?        00:08:43 ksoftirqd/11
1 S     0    66     2  0  80   0 -     0 -      ?        00:00:00 kworker/11:0
1 S     0    67     2  0  60 -20 -     0 -      ?        00:00:00 kworker/11:0H
5 S     0    68     2  0 -40   - -     0 -      ?        00:01:19 watchdog/12
1 S     0    69     2  0 -40   - -     0 -      ?        00:05:08 migration/12
1 S     0    70     2  0  80   0 -     0 -      ?        00:08:24 ksoftirqd/12
1 S     0    71     2  0  80   0 -     0 -      ?        00:00:00 kworker/12:0
1 S     0    72     2  0  60 -20 -     0 -      ?        00:00:00 kworker/12:0H
5 S     0    73     2  0 -40   - -     0 -      ?        00:01:08 watchdog/13
1 S     0    74     2  0 -40   - -     0 -      ?        00:05:09 migration/13
1 S     0    75     2  0  80   0 -     0 -      ?        00:08:29 ksoftirqd/13
1 S     0    76     2  0  80   0 -     0 -      ?        00:00:00 kworker/13:0
1 S     0    77     2  0  60 -20 -     0 -      ?        00:00:00 kworker/13:0H
5 S     0    78     2  0 -40   - -     0 -      ?        00:01:07 watchdog/14
1 S     0    79     2  0 -40   - -     0 -      ?        00:05:06 migration/14
1 S     0    80     2  0  80   0 -     0 -      ?        00:08:28 ksoftirqd/14
1 S     0    81     2  0  80   0 -     0 -      ?        00:00:00 kworker/14:0
1 S     0    82     2  0  60 -20 -     0 -      ?        00:00:00 kworker/14:0H
5 S     0    83     2  0 -40   - -     0 -      ?        00:01:06 watchdog/15
1 S     0    84     2  0 -40   - -     0 -      ?        00:05:06 migration/15
1 S     0    85     2  0  80   0 -     0 -      ?        00:08:28 ksoftirqd/15
1 S     0    86     2  0  80   0 -     0 -      ?        00:00:00 kworker/15:0
1 S     0    87     2  0  60 -20 -     0 -      ?        00:00:00 kworker/15:0H
5 S     0    88     2  0  80   0 -     0 -      ?        00:00:00 kdevtmpfs
1 S     0    89     2  0  60 -20 -     0 -      ?        00:00:00 netns
1 S     0    90     2  0  60 -20 -     0 -      ?        00:00:00 perf
1 S     0    91     2  0  80   0 -     0 -      ?        00:00:28 khungtaskd
1 S     0    92     2  0  60 -20 -     0 -      ?        00:00:10 writeback
1 S     0    93     2  0  85   5 -     0 -      ?        00:00:00 ksmd
1 S     0    94     2  0  99  19 -     0 -      ?        00:00:00 khugepaged
1 S     0    95     2  0  60 -20 -     0 -      ?        00:00:00 crypto
1 S     0    96     2  0  60 -20 -     0 -      ?        00:00:00 kintegrityd
1 S     0    97     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0    98     2  0  60 -20 -     0 -      ?        00:00:00 kblockd
1 S     0    99     2  0  60 -20 -     0 -      ?        00:00:00 ata_sff
1 S     0   100     2  0  60 -20 -     0 -      ?        00:00:00 md
1 S     0   101     2  0  60 -20 -     0 -      ?        00:00:00 devfreq_wq
1 S     0   103     2  0  80   0 -     0 -      ?        00:12:53 kworker/11:1
1 S     0   105     2  0  80   0 -     0 -      ?        02:20:43 kswapd0
1 S     0   106     2  0  80   0 -     0 -      ?        01:37:45 kswapd1
1 S     0   107     2  0  60 -20 -     0 -      ?        00:00:00 vmstat
1 S     0   108     2  0  80   0 -     0 -      ?        00:00:02 fsnotify_mark
1 S     0   109     2  0  80   0 -     0 -      ?        00:00:00 ecryptfs-kthrea
1 S     0   125     2  0  60 -20 -     0 -      ?        00:00:00 kthrotld
1 S     0   128     2  0  80   0 -     0 -      ?        00:00:58 kworker/2:1
1 S     0   132     2  0  80   0 -     0 -      ?        00:00:22 kworker/6:1
1 S     0   133     2  0  80   0 -     0 -      ?        00:01:02 kworker/7:1
1 S     0   134     2  0  80   0 -     0 -      ?        00:46:25 kworker/8:1
1 S     0   136     2  0  80   0 -     0 -      ?        00:03:34 kworker/10:1
1 S     0   137     2  0  80   0 -     0 -      ?        00:21:06 kworker/12:1
1 S     0   138     2  0  80   0 -     0 -      ?        00:02:33 kworker/13:1
1 S     0   139     2  0  80   0 -     0 -      ?        00:02:26 kworker/14:1
1 S     0   140     2  0  80   0 -     0 -      ?        00:02:31 kworker/15:1
1 S     0   141     2  0  60 -20 -     0 -      ?        00:00:00 acpi_thermal_pm
1 S     0   142     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   143     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   144     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   145     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   146     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   147     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   148     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   149     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   150     2  0  80   0 -     0 -      ?        00:00:00 scsi_eh_0
1 S     0   151     2  0  60 -20 -     0 -      ?        00:00:00 scsi_tmf_0
1 S     0   152     2  0  80   0 -     0 -      ?        00:00:00 scsi_eh_1
1 S     0   153     2  0  60 -20 -     0 -      ?        00:00:00 scsi_tmf_1
1 S     0   159     2  0  60 -20 -     0 -      ?        00:00:00 ipv6_addrconf
1 S     0   172     2  0  60 -20 -     0 -      ?        00:00:00 deferwq
1 S     0   173     2  0  80   0 -     0 -      ?        00:10:54 kworker/u32:1
1 S     0   174     2  0  60 -20 -     0 -      ?        00:00:00 charger_manager
1 S     0   250     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   251     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   252     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   253     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   254     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   255     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   256     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   257     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   258     2  0  60 -20 -     0 -      ?        00:00:00 mpt_poll_0
1 S     0   259     2  0  60 -20 -     0 -      ?        00:00:00 mpt/0
1 S     0   260     2  0  60 -20 -     0 -      ?        00:00:00 kpsmoused
1 S     0   269     2  0  80   0 -     0 -      ?        00:00:00 scsi_eh_2
1 S     0   270     2  0  60 -20 -     0 -      ?        00:00:00 scsi_tmf_2
1 S     0   272     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   274     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   299     2  0  60 -20 -     0 -      ?        00:00:00 kdmflush
1 S     0   300     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   303     2  0  60 -20 -     0 -      ?        00:00:00 kdmflush
1 S     0   304     2  0  60 -20 -     0 -      ?        00:00:00 bioset
1 S     0   321     2  0  80   0 -     0 -      ?        00:14:42 jbd2/dm-0-8
1 S     0   322     2  0  60 -20 -     0 -      ?        00:00:00 ext4-rsv-conver
1 S     0   460     1  0  80   0 -  4945 -      ?        00:00:00 upstart-udev-br
5 S     0   465     1  0  80   0 - 13063 -      ?        00:00:00 systemd-udevd
1 S     0   544     2  0  60 -20 -     0 -      ?        00:00:00 ext4-rsv-conver
1 S     0   563     2  0  80   0 -     0 -      ?        00:44:51 jbd2/sdb-8
1 S     0   564     2  0  60 -20 -     0 -      ?        00:00:00 ext4-rsv-conver
1 S     0   602     2  0  60 -20 -     0 -      ?        00:00:00 ttm_swap
1 S     0   740     1  0  80   0 -  3818 -      ?        00:00:00 upstart-socket-
1 S     0   753     2  0  80   0 -     0 -      ?        01:02:56 kworker/4:2
4 S     0   948     1  0  80   0 - 57849 -      ?        00:00:46 winbindd
4 S     0   951     1  0  80   0 - 68394 -      ?        00:19:23 smbd
4 S     0  1039     1  0  80   0 - 10873 -      ?        00:00:00 systemd-logind
1 S     0  1063     1  0  80   0 -  3822 -      ?        00:00:00 upstart-file-br
1 S     0  1093   948  0  80   0 - 59416 -      ?        00:02:19 winbindd
5 S     0  1097     1  0  80   0 - 47876 -      ?        00:40:42 nmbd
1 S     0  1151     2  0  60 -20 -     0 -      ?        00:00:13 kworker/8:1H
1 S     0  1153   948  0  80   0 - 57746 -      ?        00:01:05 winbindd
1 S     0  1160   948  0  80   0 - 57849 -      ?        00:01:23 winbindd
5 S     0  1178   951  0  80   0 - 68394 -      ?        00:02:42 smbd
4 S     0  1181     1  0  80   0 -  3637 -      tty4     00:00:00 getty
4 S     0  1184     1  0  80   0 -  3637 -      tty5     00:00:00 getty
4 S     0  1190     1  0  80   0 -  3637 -      tty2     00:00:00 getty
4 S     0  1191     1  0  80   0 -  3637 -      tty3     00:00:00 getty
4 S     0  1193     1  0  80   0 -  3637 -      tty6     00:00:00 getty
1 S     0  1209     1  0  80   0 -  5916 -      ?        00:02:04 cron
4 S     0  1211     1  0  80   0 - 15347 -      ?        00:00:00 sshd
1 S     0  1226     2  0  60 -20 -     0 -      ?        00:00:06 kworker/0:1H
5 S     0  1231     1  0  80   0 -  4829 -      ?        01:10:57 irqbalance
1 S     0  1254     2  0  60 -20 -     0 -      ?        00:00:04 kworker/4:1H
1 S     0  1266     1  0  80   0 -  1095 -      ?        00:00:00 acpid
4 S     0  1278     1  0  80   0 - 40914 -      ?        04:06:44 vmtoolsd
1 S     0  1368     2  0  60 -20 -     0 -      ?        00:00:04 kworker/3:1H
1 S     0  1373     2  0  60 -20 -     0 -      ?        00:00:05 kworker/7:1H
1 S     0  1374     2  0  60 -20 -     0 -      ?        00:00:03 kworker/14:1H
1 S     0  1375     2  0  60 -20 -     0 -      ?        00:00:06 kworker/9:1H
1 S     0  1393     2  0  60 -20 -     0 -      ?        00:00:08 kworker/15:1H
1 S     0  1396     2  0  60 -20 -     0 -      ?        00:00:02 kworker/13:1H
1 S     0  1411     2  0  60 -20 -     0 -      ?        00:00:07 kworker/5:1H
1 S     0  1422     2  0  80   0 -     0 -      ?        00:00:00 kauditd
1 S     0  1430     2  0  60 -20 -     0 -      ?        00:00:05 kworker/1:1H
1 S     0  1466     2  0  60 -20 -     0 -      ?        00:00:03 kworker/10:1H
1 S     0  1480     2  0  60 -20 -     0 -      ?        00:00:04 kworker/11:1H
1 S     0  1498     2  0  60 -20 -     0 -      ?        00:00:06 kworker/2:1H
1 S     0  1512     2  0  60 -20 -     0 -      ?        00:00:02 kworker/12:1H
1 S     0  1568     2  0  60 -20 -     0 -      ?        00:00:05 kworker/6:1H
4 S     0  3513     1  0  80   0 -  3637 -      tty1     00:00:00 getty
1 S     0  4768     2  0  80   0 -     0 -      ?        00:00:00 kworker/u33:0
1 S     0  5067     2  0  80   0 -     0 -      ?        00:00:00 kworker/u33:1
1 S     0  5403     2  0  80   0 -     0 -      ?        00:00:00 kworker/u34:2
1 S     0  5436     2  0  80   0 -     0 -      ?        00:00:00 kworker/u34:1
1 S     0  6685     2  0  80   0 -     0 -      ?        00:02:55 kworker/9:0
5 S     0  9267   951  0  80   0 - 70340 -      ?        00:00:01 smbd
4 S     0  9338  1211  0  80   0 - 66651 -      ?        00:00:00 sshd
1 S     0 11587     2  0  80   0 -     0 -      ?        00:00:09 kworker/5:0
4 S     0 14923  1211  0  80   0 - 66678 -      ?        00:00:00 sshd
1 S     0 14926     2  0  80   0 -     0 -      ?        00:00:04 kworker/2:2
1 S     0 17844     2  0  80   0 -     0 -      ?        00:00:42 kworker/5:2
1 S     0 18432     2  0  80   0 -     0 -      ?        00:55:48 kworker/8:0
1 S     0 19268     2  0  80   0 -     0 -      ?        00:00:07 kworker/3:0
1 S     0 19452     2  0  80   0 -     0 -      ?        00:00:41 kworker/0:1
1 S     0 21102     2  0  80   0 -     0 -      ?        00:00:32 kworker/9:2
5 S     0 23424   951  0  80   0 - 70399 -      ?        00:00:19 smbd
1 S     0 23464     2  0  80   0 -     0 -      ?        00:00:49 kworker/6:2
1 S     0 27406     2  0  80   0 -     0 -      ?        00:00:36 kworker/3:1
1 S     0 27615     2  0  80   0 -     0 -      ?        00:00:13 kworker/0:0
1 S     0 27897     2  0  80   0 -     0 -      ?        00:00:00 kworker/1:1
4 S     0 28082  1211  0  80   0 - 66644 -      ?        00:00:02 sshd
1 S     0 28094     2  0  80   0 -     0 -      ?        00:00:10 kworker/1:2
1 S     0 31391     2  0  80   0 -     0 -      ?        00:35:03 kworker/4:1
zhang@ubuntu1404198:/mnt/external/jenkins/zhang$

未完待续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值