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. 事件提交并发控制

<!-- 批量提交设置 -->
<add key="Exceptionless:EventSubmissionBatchSize" value="100" />
<add key="Exceptionless:EventSubmissionInterval" value="1000" />
<add key="Exceptionless:MaxConcurrentEventSubmissions" value="8" />

<!-- 内存队列设置 -->
<add key="Exceptionless:MaxQueueItems" value="10000" />

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" />

 

 
posted @ 2025-08-29 11:30  王竹笙  阅读(10)  评论(0)    收藏  举报