背景:一直运行正常的gitlab,在未进行任何修改的情况下,突然发现添加key报错。
分析:
1、查看gitlab日志,/home/git/gitlab/log/production.log
看到错误信息:
Started POST "/keys" for at 2016-04-29 10:49:56 +0800
Completed 500 Internal Server Error in 2904ms
Errno::ENOMEM (Cannot allocate memory - ssh-keygen -lf /tmp/key_file20160429-1265-19ifau 2>&1):
2、发现是由于内存原因,查看系统信息内存使用率是挺高的。
解决:
1、网上查找资料,提供解决方案是添加交换分区。
参考资料:http://stackoverflow.com/questions/26777690/gitlab-500-error-when-adding-removing-ssh-key
2、查看自己的系统内存信息,实际已经有交换分区(物理机内存为 1G ,交换分区为:4G),该配置的交换分区已经足够;
附上内存信息:
root@git-jamdeo:~# cat /proc/meminfo
MemTotal: 1019740 kB
MemFree: 27684 kB
Buffers: 2980 kB
Cached: 25704 kB
SwapCached: 112688 kB
Active: 433632 kB
Inactive: 492176 kB
Active(anon): 421060 kB
Inactive(anon): 476076 kB
Active(file): 12572 kB
Inactive(file): 16100 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194296 kB
SwapFree: 591092 kB
3、决定重启gitlab, 重启后内存使用情况的确得到大大改善,gitlab 也可以正常添加key 。
附上内存信息:
root@git-jamdeo:~# cat /proc/meminfo
MemTotal: 1019740 kB
MemFree: 187436 kB
Buffers: 47112 kB
Cached: 68132 kB
SwapCached: 30324 kB
Active: 549756 kB
Inactive: 195388 kB
Active(anon): 492324 kB
Inactive(anon): 137636 kB
Active(file): 57432 kB
Inactive(file): 57752 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194296 kB
SwapFree: 3843848 kB
总结:gitlab暂时恢复使用了,但是并没有发现问题的根源,难道是程序有内存泄漏???运行了一年多出现了问题,以后在研究吧,虽然自己也非常不喜欢这样的决定。