我在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
为什么耗费了那么多时间,谁能告诉我?是我哪里配置错了 还是什么情况吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的情况,出现延迟可能有以下几个原因:
网络延迟:首先检查两台机器(CentOS运行memcached服务端)与Windows客户端之间的网络连接是否稳定。高延迟的网络环境会导致数据传输速度变慢。
防火墙设置:确保在CentOS服务器上,对应 memcached 监听的端口(11211)没有被防火墙规则阻拦。可以使用 sudo firewall-cmd --permanent --add-port=11211/tcp
命令开放端口,并通过 sudo firewall-cmd --reload
重载防火墙规则。如果是iptables,相应的命令会有所不同。
内存分配:您设置了 -m 2048
,意味着为memcached分配了2GB内存。理论上这不会直接导致延迟,但如果系统内存紧张或swap频繁,也可能影响性能。
并发连接数限制:您设置的 -c 1024
是最大并发连接数,这个值对于大多数场景来说已经足够大,不太可能是瓶颈。但请确认您的Java客户端不是在短时间内尝试创建大量连接,超过了系统的处理能力。
Java客户端配置:检查Java客户端的配置,比如连接池大小、超时时间等设置。不当的配置可能导致连接管理效率低下,增加请求响应时间。
CPU和磁盘I/O:监控运行memcached的CentOS服务器的CPU和磁盘I/O使用情况。如果这些资源紧张,也会影响memcached的处理速度。
memcached日志:查看memcached的日志输出(如果开启了日志记录),看是否有错误信息或者警告提示,这可能会提供一些线索。
测试方法:确认您的测试方法准确无误。有时候,测试脚本或工具本身的执行效率、线程管理问题也会引入额外的延迟。
建议逐一排查上述点,特别是网络状况、防火墙设置以及Java客户端配置,这些是最常见的问题来源。如果所有配置都看似正常,考虑使用更专业的网络监控工具来分析网络包的传输时间,或者使用memcached自带的stats命令来获取服务状态,进一步诊断问题所在。