Exceptionless 4.1 中事件提交数据存储文件夹的配置示例,特别关注并发性能优化:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!-- 并发优化参数 -->
<add key="Exceptionless:Storage:Folder:MaxDegreeOfParallelism" value="8" />
<add key="Exceptionless:Storage:Folder:ConcurrencyLevel" value="16" />
<add key="Exceptionless:Storage:Folder:UseFileSharding" value="true" />
<add key="Exceptionless:Storage:Folder:ShardSize" value="1000" />
<!-- 文件写入优化 -->
<add key="Exceptionless:Storage:Folder:BufferSize" value="131072" /> <!-- 128KB -->
<add key="Exceptionless:Storage:Folder:MaxFileSize" value="10485760" /> <!-- 10MB -->
<!-- 事件提交并发控制 -->
<add key="Exceptionless:EventSubmissionBatchSize" value="100" />
<add key="Exceptionless:EventSubmissionInterval" value="1000" /> <!-- 1秒 -->
<add key="Exceptionless:MaxConcurrentEventSubmissions" value="8" />
<!-- 内存队列设置 -->
<add key="Exceptionless:MaxQueueItems" value="10000" />
<add key="Exceptionless:EnableWebSocket" value="true" />
<!-- Elasticsearch 连接池大小 -->
<add key="Exceptionless:Elasticsearch:ConnectionLimit" value="200" />
<!-- 事件提交批处理大小 -->
<add key="Exceptionless:EventBatchSize" value="100" />
</appSettings>
</configuration>
🚀 并发优化详解
1. 存储层并发配置
| 参数 | 推荐值 | 说明 |
|---|---|---|
MaxDegreeOfParallelism |
CPU核心数×2 | 并行文件操作的最大线程数 |
ConcurrencyLevel |
16-32 | 并发写入的内部锁数量 |
UseFileSharding |
true | 启用文件分片存储 |
ShardSize |
1000 | 每目录最大文件数 |
2. 事件提交并发控制
3. 高性能存储配置建议
<!-- 使用高速SSD存储 -->
<add key="Exceptionless:Storage:Folder:Path" value="F:\Exceptionless\EventData" />
<!-- 文件系统优化 -->
<add key="Exceptionless:Storage:Folder:EnableWriteThrough" value="false" />
<add key="Exceptionless:Storage:Folder:UseAsync" value="true" />
📊 性能监控配置
<!-- 性能计数器 -->
<add key="Exceptionless:EnablePerformanceCounters" value="true" />
<add key="Exceptionless:Storage:Folder:EnableMetrics" value="true" />
<!-- 日志记录级别 -->
<add key="Exceptionless:LogLevel" value="Info" />
<add key="Exceptionless:Storage:Folder:LogLevel" value="Warn" />
高级调优参数
<!-- 文件系统缓存策略 -->
<add key="Exceptionless:Storage:Folder:FileOptions" value="Asynchronous,SequentialScan" />
<!-- 缓冲区管理 -->
<add key="Exceptionless:Storage:Folder:MaxBufferPoolSize" value="104857600" /> <!-- 100MB -->
<add key="Exceptionless:Storage:Folder:MaxBufferSize" value="81920" /> <!-- 80KB -->
<!-- 归档策略 -->
<add key="Exceptionless:Storage:Folder:MaxArchiveFiles" value="100" />
<add key="Exceptionless:Storage:Folder:ArchiveRate" value="1000" />
本文来自博客园,作者:王竹笙,转载请注明原文链接:https://www.cnblogs.com/edeny/p/19064236

浙公网安备 33010602011771号