- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 EC2(8GB 内存)、ArchLinux 上运行 Logstash 和 Elasticsearch。
我无法清除缓存内存(我了解内核应该能够在需要时收回该内存)。从meminfo
,我了解到大部分缓存内存都是不活动的,这意味着没有进程正在使用它,所以我应该能够清除它,对吧?
我正在执行 sync && echo 3 >/proc/sys/vm/drop_caches
来清除内存。只有系统重新启动才能清除该内存。可能存在内存泄漏,我如何查看哪个进程正在使用此缓存内存。
cat /proc/meminfo
MemTotal: 7661268 kB
MemFree: 613144 kB
MemAvailable: 561144 kB
Buffers: 8580 kB
Cached: 2271144 kB
SwapCached: 0 kB
Active: 165424 kB
Inactive: 2244356 kB
Active(anon): 152528 kB
Inactive(anon): 2226088 kB
Active(file): 12896 kB
Inactive(file): 18268 kB
Unevictable: 4429248 kB
Mlocked: 4429248 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 164 kB
Writeback: 0 kB
AnonPages: 4559304 kB
Mapped: 33916 kB
Shmem: 2226220 kB
Slab: 54908 kB
SReclaimable: 33764 kB
SUnreclaim: 21144 kB
KernelStack: 1176 kB
PageTables: 11832 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3830632 kB
Committed_AS: 6861504 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 19132 kB
VmallocChunk: 34359707084 kB
HardwareCorrupted: 0 kB
AnonHugePages: 4329472 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 10240 kB
DirectMap2M: 7985152 kB
top
的输出:
top - 06:04:57 up 16 days, 17:12, 1 user, load average: 0.00, 0.04, 1.39
Tasks: 76 total, 1 running, 75 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.3 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 7661268 total, 7051140 used, 610128 free, 9772 buffers
KiB Swap: 0 total, 0 used, 0 free. 2272468 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19958 elastic+ 20 0 9746648 4.273g 22760 S 0.3 58.5 1:11.36 java
19970 root 20 0 1008496 89912 3876 S 0.3 1.2 0:07.13 node
19932 root 20 0 28256 6728 6496 S 0.0 0.1 0:01.29 systemd-journal
1 root 20 0 110052 3316 1596 S 0.0 0.0 1:45.84 systemd
19856 root 20 0 16136 2100 1460 S 0.0 0.0 0:02.05 bash
19851 root 20 0 82472 2040 1136 S 0.0 0.0 0:01.39 sshd
245 haproxy 20 0 28872 1996 624 S 0.0 0.0 4:01.48 haproxy
19854 root 20 0 157700 1980 0 S 0.0 0.0 0:00.00 (sd-pam)
244 haproxy 20 0 28596 1728 768 S 0.0 0.0 0:00.00 haproxy
221 systemd+ 20 0 23496 1476 1056 S 0.0 0.0 0:04.99 systemd-network
20197 root 20 0 17544 1464 1064 R 0.0 0.0 0:00.02 top
149 root 20 0 31016 1456 768 S 0.0 0.0 0:00.10 systemd-udevd
233 root 20 0 39980 1448 860 S 0.0 0.0 0:01.03 sshd
217 root 20 0 13204 1344 796 S 0.0 0.0 0:02.55 crond
219 dbus 20 0 24748 1236 900 S 0.0 0.0 0:18.18 dbus-daemon
229 systemd+ 20 0 18164 1196 980 S 0.0 0.0 0:00.92 systemd-resolve
19853 root 20 0 26764 1168 700 S 0.0 0.0 0:00.01 systemd
218 root 20 0 15252 1144 876 S 0.0 0.0 0:07.26 systemd-logind
194 root 16 -4 105484 1136 764 S 0.0 0.0 0:03.15 auditd
214 root 20 0 19240 1024 776 S 0.0 0.0 1:08.62 irqbalance
226 root 20 0 8124 820 700 S 0.0 0.0 0:00.00 agetty
225 root 20 0 8124 816 700 S 0.0 0.0 0:00.00 agetty
224 root 20 0 8124 792 680 S 0.0 0.0 0:00.01 agetty
242 root 20 0 23896 624 292 S 0.0 0.0 0:00.00 haproxy-systemd
213 root 20 0 9324 612 420 S 0.0 0.0 9:44.04 rngd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.16 kthreadd
3 root 20 0 0 0 0 S 0.7 0.0 65:18.76 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 10:08.87 rcu_sched
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root rt 0 0 0 0 S 0.0 0.0 0:00.36 migration/0
10 root rt 0 0 0 0 S 0.0 0.0 0:01.17 watchdog/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.91 watchdog/1
12 root rt 0 0 0 0 S 0.0 0.0 0:00.37 migration/1
最佳答案
首先 - 您给出的 echo
命令应该清除页面缓存。这与给出的命令 here 相同。 .
页面缓存由内核管理。它不被任何进程使用(至少不直接使用)。如果内核决定这样做,则页面缓存使用的内存可以提供给任何进程。内存没有泄漏。
如果您想做一个实验,请编写一个程序,重复写入 4 或 6 GB 空间中的每个页面。您将看到页面缓存下降的大小。
关于linux - Linux 上无法清除缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30272412/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
Linux 管道可以缓冲多少数据?这是可配置的吗? 如果管道的两端在同一个进程中,但线程不同,这会有什么不同吗? 请注意:这个“同一个进程,两个线程”的问题是理论上的边栏,真正的问题是关于缓冲的。 最
我找到了here [最后一页] 一种有趣的通过 Linux 启动 Linux 的方法。不幸的是,它只是被提及,我在网上找不到任何有用的链接。那么有人听说过一种避免引导加载程序而使用 Linux 的方法
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我试图了解 ld-linux.so 如何在 Linux 上解析对版本化符号的引用。我有以下文件: 测试.c: void f(); int main() { f(); } a.c 和 b.c:
与 RetroPie 的工作原理类似,我可以使用 Linux 应用程序作为我的桌面环境吗?我实际上并不需要像实际桌面和安装应用程序这样的东西。我只需要一种干净简单的方法来在 RaspberryPi 上
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
有什么方法可以覆盖现有的源代码,我应该用 PyQt、PyGTK、Java 等从头开始构建吗? 最佳答案 如果您指的是软件本身而不是它所连接的存储库,那么自定义应用程序的方法就是 fork 项目。据我所
我的情况是:我在一个磁盘上安装了两个 linux。我将第一个安装在/dev/sda1 中,然后在/dev/sda2 中安装第二个然后我运行第一个系统,我写了一个脚本来在第一个系统运行时更新它。
我在 i2c-0 总线上使用地址为 0x3f 的系统监视器设备。该设备在设备树中配置有 pmbus 驱动程序。 问题是,加载 linux 内核时,这个“Sysmon”设备没有供电。因此,当我在总线 0
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正试图在 linux 模块中分配一大块内存,而 kalloc 做不到。 我知道唯一的方法是使用 alloc_bootmem(unsigned long size) 但我只能从 linux 内核而不是
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我有 .sh 文件来运行应用程序。在该文件中,我想动态设置服务器名称,而不是每次都配置。 我尝试了以下方法,它在 CentOS 中运行良好。 nohup /voip/java/jdk1.8.0_71/
我是在 Linux 上开发嵌入式 C++ 程序的新手。我有我的 Debian 操作系统,我在其中开发和编译了我的 C++ 项目(一个简单的控制台进程)。 我想将我的应用程序放到另一个 Debian 操
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我使用4.19.78版本的稳定内核,我想找到带有企鹅二进制数据的C数组。系统启动时显示。我需要在哪里搜索该内容? 我在 include/linux/linux_logo.h 文件中只找到了一些 Log
我知道可以使用 gdb 的服务器模式远程调试代码,我知道可以调试针对另一种架构交叉编译的代码,但是是否可以更进一步,从远程调试 Linux 应用程序OS X 使用 gdbserver? 最佳答案 当然
是否有任何可能的方法来运行在另一个 Linux 上编译的二进制文件?我知道当然最简单的是在另一台机器上重建它,但假设我们唯一能得到的是一个二进制文件,那么这可能与否? (我知道这可能并不容易,但我只是
我是一名优秀的程序员,十分优秀!