Jumpserver 资源限制(限制内存与CPU占用)

Jumpserver 目前的内存最低要求是 4GB ,但是生产环境中发现 jumpserver 程序占用的实际内存更多

top - 16:44:06 up 470 days,  7:16,  3 users,  load average: 0.60, 0.56, 0.62
Tasks: 190 total,   1 running, 183 sleeping,   0 stopped,   6 zombie
%Cpu(s):  1.3 us,  0.8 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 15732496 total,   302616 free, 14369880 used,  1060000 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1024260 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
25010 root      20   0 7025880   6.6g   2372 S   0.0 44.1   2915:50 containerd-shim
32631 work      20   0 5395604   1.4g   7812 S   2.0  9.1  37:29.80 java
23456 root      20   0 5397688   1.3g   6188 S   0.0  8.9 186:38.19 java
  • 问题原因

    jumpserver 使用docker部署,内置了 mysql , redis 等程序

    [root@web00-and-backend00 ~]# docker ps
    CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS                  PORTS                                         NAMES
    610b8092947e        jumpserver/nginx:alpine2      "sh -c 'crond -b -d …"   7 weeks ago         Up 7 weeks (healthy)    0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp   jms_nginx
    ee26902044c2        jumpserver/luna:v2.8.0        "/docker-entrypoint.…"   7 weeks ago         Up 7 weeks (healthy)    80/tcp                                        jms_luna
    38528d420c14        jumpserver/core:v2.8.0        "./entrypoint.sh sta…"   7 weeks ago         Up 7 weeks (healthy)    8070/tcp, 8080/tcp                            jms_celery
    def3e263b6b5        jumpserver/koko:v2.8.0        "./entrypoint.sh"        7 weeks ago         Up 25 hours (healthy)   0.0.0.0:2222->2222/tcp, 5000/tcp              jms_koko
    f1ce3e93dc6e        jumpserver/lina:v2.8.0        "/docker-entrypoint.…"   7 weeks ago         Up 7 weeks (healthy)    80/tcp                                        jms_lina
    57e08381be1b        jumpserver/guacamole:v2.8.0   "/init"                  7 weeks ago         Up 7 weeks (healthy)    8080/tcp                                      jms_guacamole
    5f31f194d92e        jumpserver/core:v2.8.0        "./entrypoint.sh sta…"   7 weeks ago         Up 25 hours (healthy)   8070/tcp, 8080/tcp                            jms_core
    49889d33322c        jumpserver/redis:6-alpine     "docker-entrypoint.s…"   7 months ago        Up 7 months (healthy)   6379/tcp                                      jms_redis
    72a2809f7b5d        jumpserver/mysql:5            "docker-entrypoint.s…"   7 months ago        Up 7 months (healthy)   3306/tcp, 33060/tcp                           jms_mysql
    

    并且这些容器都没有做内存限制

    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
    610b8092947e        jms_nginx           0.02%               9.168MiB / 15GiB    0.06%               3GB / 3.17GB        0B / 0B             6
    ee26902044c2        jms_luna            0.00%               2.961MiB / 15GiB    0.02%               918kB / 68.2MB      0B / 0B             5
    38528d420c14        jms_celery          0.39%               458.6MiB / 15GiB    2.98%               12.2GB / 7.76GB     0B / 0B             28
    def3e263b6b5        jms_koko            0.10%               13.05MiB / 15GiB    0.08%               136MB / 79.8MB      0B / 0B             16
    f1ce3e93dc6e        jms_lina            0.00%               2.996MiB / 15GiB    0.02%               2.71MB / 276MB      0B / 0B             5
    57e08381be1b        jms_guacamole       0.12%               277.9MiB / 15GiB    1.81%               454MB / 392MB       0B / 0B             57
    5f31f194d92e        jms_core            0.22%               741.9MiB / 15GiB    4.83%               229MB / 121MB       0B / 0B             41
    49889d33322c        jms_redis           0.15%               2.742MiB / 15GiB    0.02%               34.4GB / 63GB       0B / 0B             5
    72a2809f7b5d        jms_mysql           0.10%               535.3MiB / 15GiB    3.48%               15.7GB / 24.7GB     0B / 0B             54
    
  • 解决方案: 限制Docker容器内存,或者通过Docker Compose 限制内存,或者通过修改 mysql , redis 等程序的配置文件来实现目的。

  • 例如1: 修改 redis 内存限制

    [root@web00-and-backend00 jumpserver-installer-v2.8.0]# CD /opt/jumpserver-installer-v2.8.0
    
    [root@web00-and-backend00 jumpserver-installer-v2.8.0]# vim ./config_init/redis/redis.conf
    
    # 可以发现 maxmemory 为 2G 
    maxmemory 2g
    
    • config_init 目录只是默认配置,如果需要修改这些配置,则应该去 /opt/jumpserver/config 中修改
  • 例如2: 修改 mysql 内存限制

    cp /opt/jumpserver/config/mysql/my.cnf /opt/jumpserver/config/mysql/my.cnf-bak
    vim /opt/jumpserver/config/mysql/my.cnf
    
  • 例如3: 通过 docker compose 修改设置内存限制

    CD /opt/jumpserver-installer-v2.8.0/compose
    
    [root@web00-and-backend00 compose]# ll
    总用量 52
    drwxrwxr-x 2 root root 4096 3月  18 2021 config_static
    -rw-rw-r-- 1 root root 1610 3月  18 2021 docker-compose-app.yml
    -rw-rw-r-- 1 root root  653 3月  18 2021 docker-compose-es.yml
    -rw-rw-r-- 1 root root 1238 3月  19 2021 docker-compose-external.yml
    -rw-rw-r-- 1 root root 1142 3月  18 2021 docker-compose-internal.yml
    -rw-rw-r-- 1 root root  697 3月  18 2021 docker-compose-lb.yml
    -rw-rw-r-- 1 root root  591 3月  18 2021 docker-compose-mysql.yml
    -rw-rw-r-- 1 root root  196 3月  18 2021 docker-compose-network_ipv6.yml
    -rw-rw-r-- 1 root root  134 3月  18 2021 docker-compose-network.yml
    -rw-rw-r-- 1 root root  450 3月  18 2021 docker-compose-omnidb.yml
    -rw-rw-r-- 1 root root  590 3月  18 2021 docker-compose-redis.yml
    -rw-rw-r-- 1 root root  619 3月  18 2021 docker-compose-task.yml
    -rw-rw-r-- 1 root root  547 3月  18 2021 docker-compose-xpack.yml
    
    • 修改点示例 : vim ./docker-compose-task.yml

      VIM 
      version: '2.2'
      
      services:
        celery:
          image: jumpserver/core:${VERSION}
          # 设置最大内存限制  
          mem_limit: 768M
          container_name: jms_celery
          restart: always
          tty: true
          command: start task
      
  • 修改后查看内存情况

    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
    7414d7da5170        jms_nginx           0.01%               9.469MiB / 256MiB   3.70%               342kB / 338kB       0B / 0B             6
    dfaaff16b389        jms_koko            0.07%               7.34MiB / 15GiB     0.05%               244kB / 547kB       0B / 0B             11
    66c651252eec        jms_core            101.51%             445.9MiB / 512MiB   87.09%              614kB / 278kB       0B / 0B             18
    1c1f37f229ef        jms_mysql           0.10%               265.9MiB / 1GiB     25.97%              730kB / 1.72MB      0B / 0B             44
    ee26902044c2        jms_luna            0.00%               2.961MiB / 15GiB    0.02%               922kB / 68.2MB      0B / 0B             5
    38528d420c14        jms_celery          0.07%               458.9MiB / 15GiB    2.99%               12.2GB / 7.76GB     0B / 0B             28
    f1ce3e93dc6e        jms_lina            2.28%               2.996MiB / 15GiB    0.02%               2.73MB / 276MB      0B / 0B             5
    57e08381be1b        jms_guacamole       0.08%               278.2MiB / 15GiB    1.81%               454MB / 392MB       0B / 0B             57
    49889d33322c        jms_redis           2.41%               2.723MiB / 15GiB    0.02%               34.4GB / 63GB       0B / 0B             5
    

方案二: 如果限制了内存后,还发现内存占用超高,那么可能是出现了僵尸进程导致内存无法释放

那么可以参考这篇文章: Jumpserver celery 僵尸进程导致内存不释放的问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,504评论 4 365
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,898评论 1 300
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,218评论 0 248
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,322评论 0 214
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,693评论 3 290
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,812评论 1 223
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,010评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,747评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,476评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,700评论 2 251
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,190评论 1 262
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,541评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,206评论 3 240
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,129评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,903评论 0 199
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,894评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,748评论 2 274

推荐阅读更多精彩内容