Linux学习15-gitlab访问慢502问题优化

前言

浏览器访问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      261136     4194304

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

2019年《python全栈自动化测试课程》2月16号开学!

主讲老师:上海-悠悠

上课方式:QQ群视频在线教学

上课时间:每周六、周日晚上20:30-22:30

2019年《python全栈自动化测试课程》2月16号开学!

(0)

相关推荐

  • 什么是根文件系统

    文章为作者原创,转载请附明原地址:https://mp.csdn.net/postedit/79842551 一.根文件系统简介根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文 ...

  • linux目录结构详解

    /bin/ 存放系统命令的目录,普通用户和超级用户都可以执行.不过放在/bin下的命令在单用户模式下也可以执行 /sbin/ 保存与系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境设置 ...

  • linux 文件系统管理三部曲之三:挂载文件系统

    上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统. 使用文件系统 只要把文件系统"挂载"到某个目录上,就可以通过这个目录访问文件系统了. ...

  • Linux学习14-CentOS安装gitlab环境

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

  • ip命令网络对象常见操作命令有哪些?linux学习

    ip命令是iproute软件包中的一个强大的网络配置工具,用于显示或管理Linux系统的路由.网络设备.策略路由和隧道.作为ip命令参数选项之一的操作对象,即对指定的网络对象完成的具体操作.通常,每一 ...

  • Linux学习的顺序是什么?Linux入门

    Linux操作系统是现在非常受欢迎的技术,现在市场上有很多服务器都开始使用Linux系统,可见Linux技术是非常受欢迎,因此也有很多人想要学习Linux,那么Linux学习需要多久?培训需要多长时间 ...

  • Excel函数学习15:EXACT函数

    EXACT函数检查两个文本字符串是否完全匹配,包括大写和小写是否相同,但忽略格式上的差异.如果文本字符串完全相同,那么函数的结果是TRUE:如果不完全相同,那么结果是FALSE. 在什么情况下使用EX ...

  • Linux学习1-Xshell连接阿里云ECS服务器

    前言 前段时间双十一活动,头脑发热买了个阿里云的服务器,买了后也不知道怎么用一直放着在.最近想起来,于是看了下阿里云ECS的相关资料. 由于平常一直用xshell比较多,不太习惯阿里云的ESC终端连接 ...

  • Linux学习3-yum安装java和Tomcat环境

    前言 linux上安装软件,可以用yum非常方便,不需要下载解压,一个指令就能用yum安装java和tomcat环境. 前面一篇已经实现在阿里云服务器上搭建一个禅道系统的网站,算是小有成就,但并不是每 ...

  • Linux学习6-CentOS搭建appium服务

    前言 用过appium的应该清楚,每次都需要先启动appium服务,然后再运行代码非常不方便,像selenium就不用启动服务,直接运行脚本. appium实际上只是提供服务,所以我想把它搭建到阿里云 ...

  • Linux学习7-tomcat部署多个项目(多个端口)

    前言 前面已经在tomcat上搭建了jenkins的环境,如果我们有多个项目需要部署的话,如何在一个tomcat下部署多个项目呢? 前面是直接在:8080/jenkins访问的,如果有其它项目部署的话 ...

  • Linux学习8-CentOS部署自己本地的django项目

    前言 自己本地写好的django项目,如何部署到linux服务器上,让其他的小伙伴也能访问呢?本篇以centos系统为例,把本地写好的django项目部署到linux服务器上 环境准备: 环境准备: ...