我有一个MySql服务器,其中包含以下配置更改:
max_allowed_packet = 16M max_connections = 2000 Innodb_cache_pool_size = 90G
我有一个多线程的.netcore2应用程序,每隔几秒就会为每个线程执行1000多个选择查询。 我的服务器环境是带有mysql包的Ubuntu 16.04云
这开始很好并且一切都很快但是在很短的时间之后,大多数连接变为“睡眠”模式,而那些不执行5-10的连接每隔几秒选择一次。 就资源而言,我使用了大约70%的cpus并且占用了30%的RAM。
我的服务器位于Intranet网络上,因此我无法复制整个内容,但我会尝试提供所有相关信息: 128GB RAM, 20 VCPUS(i7 cpus), 专用服务器
所有DBS都使用带有Barracuda类型的InnoDB引擎。
任何帮助将不胜感激!
编辑:如上所述,这是在内联网网络上,我不允许复制任何代码..我会尽力提供类似的东西:List<string> itemLst=new List<string>();
//fills the list here
ParallelOptions po=new ParallelOptions();
po.MaxDegreeOfParallelism = 45;
Parallel.ForEach(itemLst,po,item=>
{
//Open connection to MySql server
//do some SELECT queries
//do 1 insert and 1 delete query
//close and dispose connection
}