使用C#进行并行工作时出现MYSQL降级问题

时间:2018-02-28 12:34:13

标签: c# mysql parallel-processing

我有一个MySql服务器,其中包含以下配置更改:

  

max_allowed_pa​​cket = 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
}

0 个答案:

没有答案