清理:移除冗余的 RUN_CONCURRENT.md
该文件内容已合并到 example/README.md 中,不再需要单独维护。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,93 +0,0 @@
|
|||||||
# 运行高并发示例
|
|
||||||
|
|
||||||
## 快速开始
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd example/concurrent
|
|
||||||
go run main.go
|
|
||||||
```
|
|
||||||
|
|
||||||
## 预计运行时间
|
|
||||||
|
|
||||||
**总时间:约 5 分钟**
|
|
||||||
|
|
||||||
- 场景 1 (并发写入): ~27 秒
|
|
||||||
- 场景 2 (并发查询): ~3 秒
|
|
||||||
- 场景 3 (混合读写): ~14 秒
|
|
||||||
- 场景 4 (持续压测): 4 分钟
|
|
||||||
- 场景 5 (统计汇总): ~10 秒
|
|
||||||
|
|
||||||
## 后台运行
|
|
||||||
|
|
||||||
如果想在后台运行并保存日志:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd example/concurrent
|
|
||||||
go run main.go > output.log 2>&1 &
|
|
||||||
echo $! > pid.txt
|
|
||||||
|
|
||||||
# 查看实时输出
|
|
||||||
tail -f output.log
|
|
||||||
|
|
||||||
# 停止程序
|
|
||||||
kill $(cat pid.txt)
|
|
||||||
rm pid.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
## 查看进度
|
|
||||||
|
|
||||||
程序在场景 4(持续压测)阶段会每 10 秒显示一次进度:
|
|
||||||
|
|
||||||
```
|
|
||||||
[进度] 已运行 10 秒 - 写入: 1951 条, 查询: 1920 次
|
|
||||||
[进度] 已运行 20 秒 - 写入: 3902 条, 查询: 3840 次
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
## 性能指标
|
|
||||||
|
|
||||||
根据测试结果,您应该会看到:
|
|
||||||
|
|
||||||
- **写入吞吐量**: ~220-240 msg/s
|
|
||||||
- **查询吞吐量**: ~400-1500 query/s(取决于数据量)
|
|
||||||
- **并发处理**: 3 个 topic 同时写入和查询
|
|
||||||
|
|
||||||
## 故障排查
|
|
||||||
|
|
||||||
### 问题:程序卡住不动
|
|
||||||
|
|
||||||
如果程序在某个阶段卡住:
|
|
||||||
|
|
||||||
1. 检查磁盘空间是否充足
|
|
||||||
2. 检查是否有其他进程占用文件
|
|
||||||
3. 尝试清理测试目录:`rm -rf test_concurrent`
|
|
||||||
|
|
||||||
### 问题:查询出现 EOF 错误
|
|
||||||
|
|
||||||
这是正常现象!当 tailer 正在处理文件时,查询可能会读取到不完整的记录。程序会自动处理这些错误。
|
|
||||||
|
|
||||||
### 问题:性能比预期低
|
|
||||||
|
|
||||||
可能的原因:
|
|
||||||
- 磁盘性能较慢(特别是在虚拟机或网络存储上)
|
|
||||||
- 系统负载较高
|
|
||||||
- 索引批量同步设置(可以通过修改 `index.go` 中的 `DefaultSyncBatch` 调整)
|
|
||||||
|
|
||||||
## 自定义测试
|
|
||||||
|
|
||||||
如果想调整测试参数,编辑 `concurrent/main.go`:
|
|
||||||
|
|
||||||
```go
|
|
||||||
// 场景 1:每个 topic 写入的消息数
|
|
||||||
messagesPerTopic := 2000
|
|
||||||
|
|
||||||
// 场景 2:每个 goroutine 的查询次数
|
|
||||||
queriesPerGoroutine := 200
|
|
||||||
|
|
||||||
// 场景 4:持续压测时间
|
|
||||||
stressTestDuration := 4 * time.Minute
|
|
||||||
```
|
|
||||||
|
|
||||||
## 预期输出示例
|
|
||||||
|
|
||||||
完整输出请参考 [README.md](README.md)。
|
|
||||||
Reference in New Issue
Block a user