我在Windows上运行redis,我遇到了一些性能问题.该机器是带有32GM RAM的Xeon E5和带有Windows Server 2012的HW-Raid的SSD.还有一些其他进程在运行,但它们并不重要,大部分时间都处于空闲状态.
我经常注意到性能问题和操作超时,所以我开始"redis-cli --intrinsic-latency 100".输出显示最大延迟高达15000微秒,我认为这非常慢.
我还运行了一个内存分析器:r/w性能不是那么好(5GB /秒),但我认为这不应该是瓶颈.目前我绝对不知道该尝试什么.
你能告诉我一些如何找到性能问题吗?
Windows中的Linux没有"fork".因此,当您转储redis数据库时,它可以"停止世界"以便在磁盘"dump.rdb"上写入.好吧,他们确实实现了一个不会停止redis的"写时复制"策略,它只是在转储时复制值(redis客户端仍然能够从redis获得响应).它在他们的版本日志中:https://github.com/MSOpenTech/Redis
有一个UNIX fork()API的替代品,它使用内存映射文件模拟写时复制行为.
这是Windows中redis的真正瓶颈,因为它是一个开销,而且更复杂(错误?).这里解释:http://blogs.msdn.com/b/interoperability/archive/2012/04/26/here-s-to-the-first-release-from-ms-open-tech-redis-on -windows.aspx
因此,您可以尝试在Linux上运行redis来测试这是否是Windows端口的性能问题.此外,您编写dump.rdb的次数越多,开销就越大(您可以更改频率或尝试完全禁用它以进行测试).
最后,它也可能是一个网络问题,您应该检查它是否不是网络规则/硬件问题(吞吐量不够!电缆或东西,防火墙......).您的redis客户端是否在同一台硬件计算机上?
| 归档时间: |
|
| 查看次数: |
2296 次 |
| 最近记录: |