佚名通过本文主要向大家介绍了stringbuffer,stringbuffer的用法,java stringbuffer,stringbuffer清空,stringbuffer转string等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:stringbuffer 内存被谁消耗了?非RSS/Buffer/Cache/Slab
描述:
杀死应用,释放cache等操作之后,内存使用量减去buffer和cache
仍然有947M使用量。
应用程序RSS占用为13M,另外slab为130M。
(SLAB统计之前,关闭了kmemleak功能,这块释放了300M的slab)
通过配置CONFIG_DEBUG_KMEMLEAK编译内核,
也没有发现太严重的内核内存泄露。
到底used这947M是谁消耗的?
注:
1. 内核是自己编译的。没有swap。
2. 因项目需求,修改了、替换了网卡驱动,增加了功能。
但驱动内部,自己针对kmalloc和kfree,
kmem_cache等的使用统计数据显示没有泄露。
统计值用atomic做。
3. 频繁申请、释放的区域用的是kmem_cache。
4. 做如下统计时,网卡驱动被卸载rmmod。
描述:
本帖最后由 cinnik 于 2016-03-21 11:32:53 编辑
内存泄露
在linux上做了50小时测试后,内存使用率达70%。杀死应用,释放cache等操作之后,内存使用量减去buffer和cache
仍然有947M使用量。
应用程序RSS占用为13M,另外slab为130M。
(SLAB统计之前,关闭了kmemleak功能,这块释放了300M的slab)
通过配置CONFIG_DEBUG_KMEMLEAK编译内核,
也没有发现太严重的内核内存泄露。
到底used这947M是谁消耗的?
注:
1. 内核是自己编译的。没有swap。
2. 因项目需求,修改了、替换了网卡驱动,增加了功能。
但驱动内部,自己针对kmalloc和kfree,
kmem_cache等的使用统计数据显示没有泄露。
统计值用atomic做。
3. 频繁申请、释放的区域用的是kmem_cache。
4. 做如下统计时,网卡驱动被卸载rmmod。
// 基本状况
# free -m
total used free shared buffers cached
Mem: 3402 1101 2301 0 65 88
-/+ buffers/cache: 947 2455
Swap: 0 0 0
// 应用程序物理内存消耗
# ps -eo rss | awk 'BEGIN{sum=0}{sum=sum+$1}END{print sum}'
13180
// 应用程序状况
# top -b -n 1
Mem: 1127452K used, 2357172K free, 0K shrd, 67040K buff, 91116K cached
CPU: 0.0% usr 4.2% sys 0.0% nic 95.7% idle 0.0% io 0.0% irq 0.0% sirq
Load average: 0.00 0.00 0.00 1/97 8038
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
8038 1363 root R 1840 0.0 3 2.1 top -b -n 1
1255 1 root S 7288 0.2 1 0.0 /usr/sbin/sshd
1349 1 root S 5300 0.1 1 0.0 /usr/local/sbin/vsftpd
1708 1 ntp S 4684 0.1 0 0.0 /usr/sbin/ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
1274 1 root S 3508 0.1 0 0.0 crond
1363 1 root S 2836 0.0 1 0.0 -sh
1362 1 root S 2732 0.0 0 0.0 -/bin/sh
1603 1 root S 2064 0.0 1 0.0 syslogd -m 0
1 0 root S 1840 0.0 2 0.0 init
1606 1 root S 1764 0.0 1 0.0 klogd -x
1223 2 root SW 0 0.0 3 0.0 [kjournald]
13 2 root SW 0 0.0 3 0.0 [ksoftirqd/3]
4 2 root SW 0 0.0 0 0.0 [ksoftirqd/0]
7 2 root SW 0 0.0 1 0.0 [ksoftirqd/1]
10 2 root SW 0 0.0 2 0.0 [ksoftirqd/2]
18 2 root SW 0 0.0 3 0.0 [events/3]
17 2 root SW 0 0.0 2 0.0 [events/2]
3 2 root SW 0 0.0 0 0.0 [migration/0]
6 2 root SW 0 0.0 1 0.0 [migration/1]
9 2 root SW 0 0.0 2 0.0 [migration/2]
12 2 root SW 0 0.0 3 0.0 [migration/3]
19 2 root SW 0 0.0 2 0.0 [khelper]
15 2 root SW 0 0.0 0 0.0 [events/0]
16 2 root SW 0 0.0 1 0.0 [events/1]
358 2 root SW 0 0.0 2 0.0 [kblockd/2]
356 2 root SW 0 0.0 0 0.0&