Gitlab-cl服务器和内存使用情况

时间:2017-12-06 15:28:59

标签: memory gitlab centos6

我们正在运行从centos 6.9

上的存储库安装的gitlab-cl 10.0.1

我们有一台65GB RAM的物理服务器。 我们在Web界面上的表现很慢,所以看看内存,我们看到服务器正在交换一点,所有的内存都被使用了。

没有使用它的活动进程,free -m确认它已被缓存:

             total       used       free     shared    buffers     cached
 Mem:         64412      64179        232        140          1        176
 -/+ buffers/cache:      64001        410
 Swap:        15999       2679      13320

奇怪的是所有内存都是在DirectMap2M上分配的

cat /proc/meminfo
MemTotal:       65957916 kB
MemFree:          242364 kB
Buffers:            1132 kB
Cached:           193548 kB
SwapCached:       853032 kB
Active:          6302692 kB
Inactive:        1729836 kB
Active(anon):    6276560 kB
Inactive(anon):  1704824 kB
Active(file):      26132 kB
Inactive(file):    25012 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      16383996 kB
SwapFree:       13580524 kB
Dirty:              1576 kB
Writeback:             0 kB
AnonPages:       7595904 kB
Mapped:           162376 kB
Shmem:            144312 kB
Slab:           57184100 kB
SReclaimable:      35132 kB
SUnreclaim:     57148968 kB
KernelStack:       12912 kB
PageTables:        59144 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    49362952 kB
Committed_AS:   18168608 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      395428 kB
VmallocChunk:   34323721400 kB
HardwareCorrupted:     0 kB
AnonHugePages:   3260416 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        7652 kB
DirectMap2M:    67088384 kB

你知道为什么会这样吗? 用gitlab这是正常的吗?

我读到了几条从内存中删除缓存的命令:

# sync; echo 1 > /proc/sys/vm/drop_caches
# sync; echo 2 > /proc/sys/vm/drop_caches
# sync; echo 3 > /proc/sys/vm/drop_caches 

在运行gitlab的生产机器上运行它们是否安全?

非常感谢

1 个答案:

答案 0 :(得分:0)

不能确切地说出为什么所有内存都用完了,但实际情况是这样。起初我期望标准https://www.linuxatemyram.com/,但我可以看到,在你的情况下,你实际上使用64001 kb的内存。 列出的命令毫无意义,他们所做的只是删除缓存在内存中的磁盘块,导致下次需要相同的块时发生io命中。

要了解发生了什么,您需要查看耗尽所有内存的进程。获取该信息有几种方法

ps -e -o pid,vsz,comm= | sort -n -k 2

或获取参数

ps -e -o pid,vsz,command= | sort -n -k 2|cut -b1-$COLUMNS

你可以开始" top"击中大写" M"按内存用户排序。