前言

浏览器访问gitlab的web页面,发现非常慢,并且很容易出现502问题。其中一个原因就是8080端口被tomcat占用,前面一篇已经更换了端口,但还是很慢。

后来搜了下,原因是gitlab占用内存太多,导致服务器崩溃。尤其是使用阿里云的服务器,最容易出现502.

默认情况下,阿里云云主机的swap功能是没有启用的,解决办法就是启动swap分区。

Swap分区

Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

阿里云服务器默认swap分区是没启动的,输入free查看,如下显示的都是0

[root@yoyo sbin]# free
total used free shared buff/cache available
Mem: 3881692 3219200 369316 52184 293176 360244
Swap: 0 0 0

也可以通过cat /proc/swaps查看

[root@yoyo sbin]# cat /proc/swaps
Filename Type Size Used Priority

启用swap分区

创建swap大小为bs*count=4294971392(4G)

dd if=/dev/zero of=/mnt/swap bs=512 count=8388616

注:of=/mnt/swap目录要是没有就找/data/swap

通过mkswap命令将上面新建出的文件做成swap分区

mkswap /mnt/swap

查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60

vim /etc/sysctl.conf

vim编辑/etc/sysctl.conf,找到vm.swappiness变量配置,改成60

修改前

vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time=120

修改后

vm.swappiness = 60
net.ipv4.neigh.default.gc_stale_time=120

启用分区

swapon /mnt/swap

echo “/data/swap swap swap defaults 0 0” >> /etc/fstab

再次使用cat /proc/swaps 查看swap分区是否启动

[root@yoyo sbin]# cat /proc/swaps
Filename Type Size Used Priority
/mnt/swap file 4194304 0 -1

总的操作步骤如下

[root@yoyo sbin]# cat /proc/swaps
Filename Type Size Used Priority
[root@yoyo sbin]# free
total used free shared buff/cache available
Mem: 3881692 3219200 369316 52184 293176 360244
Swap: 0 0 0 [root@yoyo sbin]# dd if=/dev/zero of=/mnt/swap bs=512 count=8388616
8388616+0 records in
8388616+0 records out
4294971392 bytes (4.3 GB) copied, 38.5364 s, 111 MB/s [root@yoyo sbin]# mkswap /mnt/swap
Setting up swapspace version 1, size = 4194304 KiB
no label, UUID=1fa0acbf-ef66-49bd-ad05-e9fcf2727cc8 [root@yoyo sbin]# vim /etc/sysctl.conf
# vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60 [root@yoyo sbin]# swapon /mnt/swap
swapon: /mnt/swap: insecure permissions 0644, 0600 suggested.
[root@yoyo sbin]# echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
[root@yoyo sbin]# cat /proc/swaps
Filename Type Size Used Priority
/mnt/swap file 4194304 0 -1
[root@yoyo sbin]# free
total used free shared buff/cache available
Mem: 3881692 3387168 165488 52184 329036 200184
Swap: 4194304 0 4194304

启动完成swap分区后,重新打开gitlab的web页面就不会出现502了,访问速度也会快很多

交流QQ群:779429633

Linux学习17-gitlab访问慢502问题优化的更多相关文章

  1. linux学习17 运维核心技能-Linux系统下用户权限管理

    一.权限管理 1.ls -l rwxrwxrwx 左三位:定义user(owner)的权限 中三位:定义group的权限 右三位:定义other的权限 1.进程安全上下文 a.进程对文件的访问权限应用 ...

  2. Linux学习16-CentOS安装gitlab环境

    前言 在学习Gitlab的环境搭建之前,首先需要了解Git,Gitlab,GitHub他们三者之间的关系 Git 它是一个源代码版本控制系统,可让您在本地跟踪更改并从远程资源推送或提取更改. GitH ...

  3. 2019/4/17 Linux学习

    一.Linux的文件系统 其中/prov./srv./sys 文件为文件系统,技术不过硬不要去修改:二.关于Xshell.Xft1.服务器的端口可有65535个可设置,开的越多安全性越差:2.远程登录 ...

  4. Linux学习笔记之兄弟连

    systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...

  5. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  6. Linux学习历程(持续更新整理中)

    1.文件目录操作命令 (1) ls   显示文件和目录列表 a ls -l  显示文件的详细信息 b ls -a 列出当前目录的所有文件,包含隐藏文件. c stat '目录/文件'   显示指定目录 ...

  7. linux学习心得之目录树开端与/etc(图文)

    linux学习心得之目录树开端与/etc(图文) linux中“一切皆文件”,学习linux一年了,在学习过程中对目录树的一点心得,分享给大家,有不对的地方敬请斧正. 不多说了,先上图: 根目录: / ...

  8. Linux~学习笔记目录索引

    回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...

  9. Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念

    Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念 进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文 ...

随机推荐

  1. 在IIS下部署SSL证书实现HTTPS

    在IIS下部署SSL证书实现HTTPS   HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全” ...

  2. 基于用Path.Combine的优化

    Path.Combine: 什么时候会用到Path.Combine呢?,当然是连接路径字符串的时候! 所以下面的代码可以完美的工作: public static void Main() { strin ...

  3. shiro中async-supported报错 cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-supported'. One of '{"http://java.sun.com/xml/ns/ javaee":init-param}' is expected.

    最近都在研究shiro这个框架,今天实施了一下,就报了如下错误: cvc-complex-type.2.4.a: Invalid content was found starting with ele ...

  4. dojo 加载自定义module的路径问题

    因为最近想学学ArcGIS API for JavaScript ,翻了下ESRI的官网guide,发现其是基于dojo框架的,看了两页实在看不懂,于是先来熟悉下dojo框架.人蠢不能怪社会%> ...

  5. springboot 解决 woff2、ttf 跨域无法解析问题

    @Configuration public class CORSConfiguration extends WebMvcConfigurerAdapter { @Override public voi ...

  6. 交叉验证(Cross Validation)简介

    参考    交叉验证      交叉验证 (Cross Validation)刘建平 一.训练集 vs. 测试集 在模式识别(pattern recognition)与机器学习(machine lea ...

  7. JAVA 多线程制作大球吃小球 一、实现球的自动生成及运动 生产消费模型

    前几天用多线程实现了创建小球并移动,想到大鱼吃小鱼,便突发奇想要写一个大球吃小球.首先第一步自然是先把界面弄好啦 public class BallUI extends JPanel { privat ...

  8. 前后端分离之JWT用户认证(转)

    在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了.于是我 ...

  9. Android 常见SD卡操作

    目录 Android 常见SD卡操作 Android 常见SD卡操作 参考 https://blog.csdn.net/mad1989/article/details/37568667. [0.] E ...

  10. Python基础笔记(三)

    1. 循环与流程控制 (1) for myList1 = ["A", "B", "C", "D"] # 正序遍历 for ...