Skip to content

The memory will not be released, even if collectgarbage("collect") is executed #157

Open
@lzle

Description

@lzle

The memory will not be released, even if collectgarbage("collect") is executed. thanks!

location / {
    content_by_lua '
        local kafka_producer = require("resty.kafka.producer")
    
        local brokers = {
            { host = "10.104.67.26", port = 9092 },
            { host = "10.104.67.35", port = 9092 },
            { host = "10.104.67.47", port = 9092 }
        }
    
        local producer_config = {
                        producer_type   = "async",
                        max_retry       = 1,
                        batch_num       = 1000,
                        max_buffering   = 1024000,
                        }
    
        local producer = kafka_producer:new(brokers, producer_config, nil)
    
        local message = string.rep('a',  512)
    
        for i = 1, 1024000 do
            local ok, err = producer:send('original-kernel-log', nil, message .. i)
            if not ok then
               ngx.say("add err:", err)
            end
        end
    
        while true do
            if producer.ringbuffer.num == 0 then
                ngx.log(ngx.INFO, "collectgarbage")
                collectgarbage("collect")
                ngx.sleep(30)
            end
            ngx.sleep(1)
        end
    
        ngx.say("ok")
    ';
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions