开发者社区 问答 正文

memcached的性能问题

我在centOS上安装了mc,分别在两台机器上了启动了2个进程。

但是通过另一台WINDOWS系统,通过 memcached for java client客户端访问,随意set 了40次 key 和value都是不超过10个字符串,为什么用了210多秒,mc 不会那么sui吧,启动mc的指令类似:memcached -d -m 2048 -u root -l 192.168.1.200 -p 11211 -c 1024  

为什么耗费了那么多时间,谁能告诉我?是我哪里配置错了 还是什么情况吗?

 

展开
收起
huc_逆天 2020-05-28 09:16:56 326 分享 版权
阿里云 AI 助理回答

根据您描述的情况,出现延迟可能有以下几个原因:

  1. 网络延迟:首先检查两台机器(CentOS运行memcached服务端)与Windows客户端之间的网络连接是否稳定。高延迟的网络环境会导致数据传输速度变慢。

  2. 防火墙设置:确保在CentOS服务器上,对应 memcached 监听的端口(11211)没有被防火墙规则阻拦。可以使用 sudo firewall-cmd --permanent --add-port=11211/tcp 命令开放端口,并通过 sudo firewall-cmd --reload 重载防火墙规则。如果是iptables,相应的命令会有所不同。

  3. 内存分配:您设置了 -m 2048,意味着为memcached分配了2GB内存。理论上这不会直接导致延迟,但如果系统内存紧张或swap频繁,也可能影响性能。

  4. 并发连接数限制:您设置的 -c 1024 是最大并发连接数,这个值对于大多数场景来说已经足够大,不太可能是瓶颈。但请确认您的Java客户端不是在短时间内尝试创建大量连接,超过了系统的处理能力。

  5. Java客户端配置:检查Java客户端的配置,比如连接池大小、超时时间等设置。不当的配置可能导致连接管理效率低下,增加请求响应时间。

  6. CPU和磁盘I/O:监控运行memcached的CentOS服务器的CPU和磁盘I/O使用情况。如果这些资源紧张,也会影响memcached的处理速度。

  7. memcached日志:查看memcached的日志输出(如果开启了日志记录),看是否有错误信息或者警告提示,这可能会提供一些线索。

  8. 测试方法:确认您的测试方法准确无误。有时候,测试脚本或工具本身的执行效率、线程管理问题也会引入额外的延迟。

建议逐一排查上述点,特别是网络状况、防火墙设置以及Java客户端配置,这些是最常见的问题来源。如果所有配置都看似正常,考虑使用更专业的网络监控工具来分析网络包的传输时间,或者使用memcached自带的stats命令来获取服务状态,进一步诊断问题所在。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答标签:
问答地址: