zoukankan      html  css  js  c++  java
  • Linux学习17-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           0     4194304
    

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

  • 相关阅读:
    [性能调优]在PeopleSoft中使用函数索引
    如何在PeopleSoft中找到并更改默认样式表名称
    安装docker之后,测试hello-world镜像,终端提示:Unable to find image 'hello-world:latest' locally019-11-06
    ubuntu上安装docker
    ubuntu设置MySQL被局域网访问
    .Net Core使用 MiniProfiler 进行性能分析
    EF初次启动慢
    数据库最大连接池Max Pool Size
    SQLSERVER:Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
    EntityFramework中常用的数据删除方式
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/10281892.html
Copyright © 2011-2022 走看看