我的.netCore应用运行在centos7.4有时感觉不稳定,EF操作数据库特殊情况会卡,不知道是不是MySQL没优化好[流泪],服务器4g内存用到百分之六十五,会不会危险?有什么办法优化?2核CPU确很闲,dotnet占内存最多,1.3g的样子,我要从什么地方下手优化?
建议检查一下日志中有没有EF Core相关的警告,比如
The LINQ expression '...' could not be translated and will be evaluated locally
EF Core使用不当会造成将数据库表中的数据全部加载到内存,然后在内存中查询
什么地方的日志?数据库吗?
@DotNet-fans: asp.net core的日志,详见 Logging in ASP.NET Core
@dudu: 嗯,.netcore我有日志记录,没有这个问题, 百分之98以上的时候是很顺的,偶尔才会卡一下,
@DotNet-fans: 1.3G内存的确是个问题,建议仔细review一下代码、检查一下EF Core实际生成SQL语句,我觉得问题可能还是出在LINQ的写法造成将过多的数据加载到内存中查询
@dudu:
"configProperties": {
"System.GC.Concurrent": false,
"System.GC.Server": false
}
上面一直有设置,内存还是很容易占用很高
@DotNet-fans: 你用的是哪个版本的asp.net core?
@dudu: 一直有升级,最新的2.0
@DotNet-fans: 站点的QPS(请求数/每秒)有多少?
@dudu: 每天1万多左右的访问量,请求数20万的样子,
@DotNet-fans: 建议先排除是否是虚拟内存交换引起的卡顿,如果可能,建议禁用虚拟内存试试