这个问题与此有关 https://serverfault.com/questions/896282/cannot-explain-memory-occupancy-in-linux/896525#896525 并 How to correctly identify and correct a memory leak on a server?
什么是内核动态内存?我现在几乎没有在我的工作站上运行进程
$ ps aux --sort -rss | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 987 0.0 0.0 54284 15932 ? Ss Feb09 0:03 /lib/systemd/systemd-journald
imoline+ 49734 0.0 0.0 24640 8672 pts/0 Ss+ Feb13 0:05 /bin/bash
rstudio+ 4803 0.0 0.0 128608 7400 ? Ssl Feb09 0:39 /usr/lib/rstudio-server/bin/rserver
imoline+ 53699 0.0 0.0 23356 7224 pts/2 Ss Feb13 0:04 /bin/bash
imoline+ 68563 0.0 0.0 23200 6876 pts/1 Ss 10:37 0:00 -bash
root 1 0.0 0.0 204660 6804 ? Ss Feb09 0:05 /sbin/init
root 68556 0.0 0.0 99308 6800 ? Ss 10:37 0:00 sshd: imolineris [priv]
root 4770 0.0 0.0 69944 6484 ? Ss Feb09 0:00 /usr/sbin/sshd -D
但仍然根据free
$ free -g
total used free shared buff/cache available
Mem: 125 67 56 0 1 57
Swap: 119 0 119
和smem
$ sudo smem -t -w -p
Area Used Cache Noncache
firmware/hardware 0.00% 0.00% 0.00%
kernel image 0.00% 0.00% 0.00%
kernel dynamic memory 54.68% 1.25% 53.43%
userspace memory 0.06% 0.03% 0.03%
free memory 45.26% 45.26% 0.00%
----------------------------------------------------------
100.00% 46.54% 53.46%
我可以强制以某种方式释放它而不重新启动吗?
答案 0 :(得分:0)
由于您没有回复,我将在不涉及Linux细节的情况下制作一般意义上的答案。
大多数操作系统需要为自己的目的分配动态内存。该存储器位于虚拟地址空间的系统空间区域。因此,当内核动态内存在内核模式下执行时,它们可以访问所有进程。在某些系统上,这个动态内存进一步细分为" paged"和"非分页"。
注意区别:
内核动态内存54.68%1.25%53.43%
用户空间内存0.06%0.03%0.03%
考虑操作系统必须维护的所有数据结构(例如,进程状态定义,页表)以及执行I / O的缓冲区。
是的,可能存在内核内存泄漏。您将内存分配给内核这一事实并不一定意味着存在泄漏。