GBase_David
作者GBase_David·2017-07-27 16:25
DBA·GBase

关于NETTYPE的理解

字数 703阅读 2759评论 0赞 5

参数NETTYPE的定义如下:
NETTYPE connection_type,poll_threads,conn_per_thread,vp_class
示例:
NETTYPE onsoctcp,8,200,NET
在此想告诉大家的是,此处的8是指poll_threads的数量。
并非通常理解意义上的
数据库的最大并发用户数=poll_threads*conn_per_thread

poll_threads是干什么的?客户端的连接数据库,数据库提供poll_threads来接受客户端的请求,接受了之后转给listener thread,listener thread负责判断该会话之前是否建立过,如果已经建立过,重用原来的连接信息;如果没有建立过,listener thread负责新建连接信息。在连接建立完毕,poll_threads的释放了。

显然poll_threadsconn_per_thread不能代表数据库允许的最大并发用户数*。我之前也一直在误解中。。。。。

既然poll_threads负责接收客户端的请求,那么在大并发连接数据库的时候,poll_threads的效率就需要考虑。通过增加poll_threads的数量,增加NUMFDSERVERS参数的值,可以大大提高大并发的连接效率。

这是因为:
在NETTYPE and NUMFDSERVERS之间有一定的相关性,当你有多个CPU VP和poll thread,会有网络共享文件的锁定(NSF)的争用。你可以增加NUMFDSERVERS的值以减少NSF锁争用。提高连接数据库的效率,缩短连接时间。

这个在实际生产是经过测试的,确实有效。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

X社区推广