我有一台 Ubuntu 服务器,它使用 bitcoind 下载区块链和执行其他一些任务。区块链已完全同步。我知道它可能会占用大量内存,这就是为什么我试图限制它使用的 RAM 量,但似乎没有成功。
我用来减少内存使用量的参数是:
-dbcache=20
-maxsigcachesize=4
-maxconnections=4
-rpcthreads=1
-par=2
cat /proc/meminfo 信息:
MemTotal: 4194304 kB
MemFree: 282108 kB
Cached: 3634908 kB
Buffers: 0 kB
Active: 820684 kB
Inactive: 3077500 kB
Active(anon): 133488 kB
Inactive(anon): 132396 kB
Active(file): 687196 kB
Inactive(file): 2945104 kB
Unevictable: 64 kB
Mlocked: 64 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 265884 kB
Shmem: 2608 kB
Slab: 13920 kB
SReclaimable: 8096 kB
SUnreclaim: 5824 kB
执行后ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
我得到以下信息:
0 MB COMMAND
0 MB [khelper/270]
0 MB [kthreadd/270]
0.664062 MB sh
0.753906 MB sort
0.777344 MB upstart-file-bridge
0.808594 MB upstart-udev-bridge
0.828125 MB /sbin/getty
0.832031 MB /sbin/getty
0.972656 MB awk
0.972656 MB upstart-socket-bridge
1.10938 MB ps
1.39844 MB /lib/systemd/systemd-udevd
1.39844 MB su
1.48047 MB rsyslogd
1.70703 MB tmux
2.04297 MB -bash
2.06641 MB -bash
2.54688 MB init
3 MB /usr/sbin/sshd
3.86328 MB sshd:
29.4609 MB /usr/lib/erlang/erts-5.10.4/bin/beam.smp
285.316 MB ./bin/bitcoind
如果 bitcoind 只占用 285MB,那为什么 4GB 内存中只剩下不到 300MB? bitcoind 在 tmux 会话中运行,被终止后,我没有再获得任何内存。
答案1
缓存:3634908 kB
这是您的 HDD 读/写缓存。Linux 和大多数其他操作系统将使用所有可用内存作为驱动器缓存。此缓存大小不固定。如果您的程序需要更多内存,那么一些内存将被刷新到磁盘,为正在运行的程序腾出空间。