Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lua.shared.DICT问题 #1077

Open
vipwangtian opened this issue Jul 31, 2018 · 3 comments
Open

lua.shared.DICT问题 #1077

vipwangtian opened this issue Jul 31, 2018 · 3 comments

Comments

@vipwangtian
Copy link

我们在从nginx更换到tengine时遇到了一个问题,在使用nginx时我们使用lua开发了一部分功能,使用lua.shared.DICT将$remote_addr装入内存,在更换tengine后发现使用同样128m大小的内存,却装不下原来的数据量。
原nginx版本:1.13.2
tengine版本:2.2.2
ngx_devel_kit版本:0.3.0
lua-nginx-module版本:0.10.13

@chobits
Copy link
Member

chobits commented Aug 2, 2018

却装不下原来的数据量。

这个信息具体指什么?(如有报错可以提供)

@vipwangtian
Copy link
Author

vipwangtian commented Aug 2, 2018

@chobits 是这样,我们在nginx上用lua开发了些功能,下面是代码片段和nginx配置

lua_shared_dict ip_whitelist 64m;  
local res, err, errcode, sqlstate = db:query("select ip from ip_white")   
if not err then   
	ip_whitelist:flush_all()   
	if #res > 0 then    
		for k,v in pairs(res) do   
			ip_whitelist:set(v.ip,0)    
		end	   
	end   
	ngx.say("ok"   
else   
	ngx.say("ip_whitelist sql err")	   
end   

ip_white表的数据量大概31w条,这个运行的一直很好,已经稳定运行了一年,现在我们想将nginx更换成tengine2.2.2,更换后发现这段程序有问题了,ip_whitelist在存储了1.6w左右的数据就满了,但是它在nginx下仍然运行的很好

@wangfakang
Copy link
Collaborator

你可以尝试使用当前最新版本Tengine-2.3.0 or Tengine-2.3.1. 之前老版本Tengine有一处slab初始化逻辑漏掉了。可能会导致每次占用的内存比较多。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants