文章

OGG-25715 错误

OGG-25715 错误

前言

启动 Extract 进程的时候出现 OGG-25715 错误的解决方法,在网上搜索到的解决方法并不适用于我的环境,所以记录一下

OGG-25715 错误的解决方法

在目标端 ogg Kafka 环境 replicat 进程启动时,遇到以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2025-02-26 22:28:19  INFO    OGG-01851  filecaching started: thread ID: 140174464091904.

2025-02-26 22:28:19  INFO    OGG-01815  Virtual Memory Facilities for: COM
    anon alloc: mmap(MAP_ANON)  anon free: munmap
    file alloc: mmap(MAP_SHARED)  file free: munmap
    target directories:
    /home/ogg/ogg21/dirtmp.

Source Context :
  SourceModule            : [ggapp.cachemgr]
  SourceID                : [../gglib/ggapp/cachemgr/cmgr_restore.c]
  SourceMethod            : [cm_vm_vals_set]
  SourceLine              : [2861]
  ThreadBacktrace         : [13] elements
                          : [/home/ogg/ogg21/libgglog.so(CMessageContext::AddThreadContext())]
                          : [/home/ogg/ogg21/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))]
                          : [/home/ogg/ogg21/libgglog.so(_MSG_(CSourceContext*, int, CMessageFactory::MessageDisposition))]
                          : [/home/ogg/ogg21/replicat()]
                          : [/home/ogg/ogg21/replicat()]
                          : [/home/ogg/ogg21/replicat(CM_cache_init(pool_info*, char const*, extract_vals*))]
                          : [/home/ogg/ogg21/replicat()]
                          : [/home/ogg/ogg21/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain())]
                          : [/home/ogg/ogg21/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))]
                          : [/home/ogg/ogg21/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]
                          : [/home/ogg/ogg21/replicat(main)]
                          : [/lib64/libc.so.6(__libc_start_main)]
                          : [/home/ogg/ogg21/replicat()]

2025-02-26 22:28:19  ERROR   OGG-25715  CACHEMGR: No Swap environment and parameter CONTAINER MEM_LIMIT not set.

2025-02-26 22:28:19  ERROR   OGG-01668  PROCESS ABENDING.

错误信息提示很明显,没有设置 CONTAINER MEM_LIMIT 参数和 swap 空间,所以需要在配置文件中设置该参数或者设置 swap 空间

查看当前 swap 空间

1
2
3
4
5
6
GGSCI (bigdata01) 9> shell free  -h

              total        used        free      shared  buff/cache   available
Mem:           125G         78G        4.5G        4.0G         42G         42G
Swap:            0B          0B          0B

OS 没有设置 swap 空间,所以需要设置 swap 空间或者设置相关的参数,如果不想更改 OS 环境,ogg 链路有比较少的话,可以在配置文件中设置 CONTAINER MEM_LIMIT 参数,如果链路比较多,可以设置 swap 空间

1
2
3
4
GGSCI (bigdata01) 10> edit params replicate

container mem_limit 8G
cachemgr cachesize 1G

需要注意的是 mem_limit 参数的设置,需要根据实际情况设置,不要设置过大,否则会影响系统的性能,不能比实际的物理内存大。 cachesize 参数设置的是缓存的大小,不能比 mem_limit 大

设置完成之后,重启 replicat 进程即可

嫌麻烦可以直接设置 swap,参考以下脚本,脚本是之前网上找到的,可以根据实际情况修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
cat >> addswap.sh<<wxj

#!/bin/bash
#********************************************************
#Author: Archangel
#Description:
#Date: 2023-03-16 21:33:16
#LastEditTime: 2023-03-16 21:33:16
#FilePath: \Desktop\swapfile.sh
#LastEditors: Archangel
#********************************************************
#定义颜色参数
function echo_color() {
    #定义颜色函数变量
    var_color=${1}
    #定义颜色函数参数
    content_str=${2}
    #定义颜色时间参数
    date_time=$(date "+%Y-%m-%d %H:%M:%S.%N" | cut -b 1-23)
    #清空默认值
    content_echo_str=""
    #定义颜色变量
    error_color="\033[1;5;41m"              #红底背景红字带闪烁,致命错误
    failed_color="\033[1;31m"               #红色字体,执行错误信息
    warn_color="\033[1;33m"                 #黄色字体,警号信息
    succ_color="\033[1;32m"                 #绿色字体,执行正确信息
    info_color="\033[1;34m"                 #蓝色字体,提示信息
    violet_color='\033[1;35m'               #紫色字体,信息
    blue_underline_color='\033[47;34m'      #蓝色带下滑线,信息
    dark_green_underline_color='\033[4;36m' #深绿色带下滑线,信息
    red_twinkle_color='\033[5;31m'          #红字带闪烁,致命错误
    #定义颜色结束变量
    RES='\033[0m'

    ## 判断参数 1 是否是空字符串
    if [ "x${content_str}" == "x" ]; then
        return
    else
        content_str="[${date_time}] ${content_str} ${RES}"
    fi

    #定义输出串
    case ${var_color} in
    error) #error
        content_echo_str="${error_color}\t${content_str}"
        ;;
    failed) #failed
        content_echo_str="${failed_color}\t${content_str}"
        ;;
    warning) #warning
        content_echo_str="${warn_color}\t${content_str}"
        ;;
    success) #success
        content_echo_str="${succ_color}\t${content_str}"
        ;;
    info) #info
        content_echo_str="${info_color}\t${content_str}"
        ;;
    violet) #violet
        content_echo_str="${violet_color}\t${content_str}"
        ;;
    blue_underline) #blue_underline
        content_echo_str="${blue_underline_color}\t${content_str}"
        ;;
    dark_green_underline) #dark_green_underline
        content_echo_str="${dark_green_underline_color}\t${content_str}"
        ;;
    red_twinkle) #red_twinkle
        content_echo_str="${red_twinkle_color}\t${content_str}"
        ;;
    esac
    ## 打印输出
    echo -e "${content_echo_str}"
}

# 设置交换分区文件大小,单位 MB
swapfile=$1
swap_size=$2
unit=$3

if [ -z "${swapfile}" ] || [ -z "${swap_size}" ] || [ -z "${unit}" ]; then
    echo_color failed "参数错误:缺少必要参数"
    echo_color success "sh $0 交换分区文件位置 交换分区文件大小 单位 1(M|G)"
    echo_color warning "sh $0 /swap/swapfile 2048 M"
    exit
fi

swap_dir=$(dirname ${swapfile})
if [ ! -d ${swap_dir} ]; then
    echo_color info "创建目录:${swap_dir}"
    mkdir -p ${swap_dir}
fi

echo_color info "创建一个空白文件作为交换分区,单次 1${unit},共${swap_size}次"
dd if=/dev/zero of=${swapfile} bs=1${unit} count=${swap_size}

echo_color info "设置文件权限,仅限 root 用户读写"
chmod 600 ${swapfile}

echo_color info "格式化交换分区"
mkswap ${swapfile}

echo_color info "启用交换分区"
swapon ${swapfile}

echo_color info "永久生效,将以下内容添加到 /etc/fstab 文件中"
echo "${swapfile}   swap    defaults    0   0" >>/etc/fstab

wxj

使用方法:

1
sh addswap.sh /swap/swapfile 2048 M

总结

  • OGG-25715 错误的解决方法
  • 设置 swap 空间或者设置 CONTAINER MEM_LIMIT 和 cachesize 参数
本文由作者按照 CC BY 4.0 进行授权