常见于 SDK 、API 调用时的报错,客户源可能是在云主机或者 PC 端。通过文 章开始所说道的信息我们判断是是否为必现问题,如果问题必现的话很容易能定位。 如果不容易出现只能分层排查。 分析: ● 先看下主机的 socket 资源是否足够分配,通过可以用 netstat 或者 ss 命令来 查看本机的 socket 连接数,如果主机 TCP 占用较慢,很容易出现连接数资 源不够分配的情况。 ● 看下主机的 ulimit -n 的文件描述符是否够用。 ● 如果用户使用的是 SDK ,需要确认 OSSClient 在初始化时是否限制了连接数和超时时间。如果通过前面测试发现网路不好抖动很大,建议把 sockettimeout 的时间放长些。
// 创建 ClientConfiguration。ClientConfiguration 是 OSSClient 的配置类,可配置代理、
连接超时、最大连接数等参数。
ClientConfiguration conf = new ClientConfiguration();
// 设置 OSSClient 允许打开的最大 HTTP 连接数,默认为 1024 个。
conf.setMaxConnections(200);
// 设置 Socket 层传输数据的超时时间,默认为 50000 毫秒。
conf.setSocketTimeout(10000);
// 设置建立连接的超时时间,默认为 50000 毫秒。
conf.setConnectionTimeout(10000);
// 设置从连接池中获取连接的超时时间(单位:毫秒),默认不超时。
conf.setConnectionRequestTimeout(1000);
// 设置连接空闲超时时间。超时则关闭连接,默认为 60000 毫秒。
conf.setIdleConnectionTime(10000);
// 设置失败请求重试次数,默认为 3 次。
conf.setMaxErrorRetry(5);
// 设置是否支持将自定义域名作为 Endpoint,默认支持。
conf.setSupportCname(true);
// 创建 OSSClient 实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret,
conf);
// 关闭 OSSClient。
ossClient.shutdown();
一些特殊的架构场景,比如加了一些 proxy 产品,这种情况经常会遇到瓶颈,需 要分开来看
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。