ELB 延迟问题

2017-07-04 12:55:24 +08:00
 klakekent
最近遇到个奇怪的问题。

我的服务是搭在 aws 上面,现在在 elb 后面挂了 4 台 ec2 实例,都是 c3large 类型的。ec2 的架构就是 nginx+php-fpm,数据库是用的 aws 的 rds。

由于历史遗留问题,会在每天 16 点的时候有一波大量的请求过来,其实也没多少 我观察了一下 elb 的请求数 大概每分钟也就才 3000 左右,正常情况是 300-400 每分钟的请求数。但是在这种情况下居然会导致 elb 延迟非常高 我看了下大概会持续有 5 分钟左右到 40s 的延迟了。这些请求我看了下日志以及以前的的 nginx 配置,直接在 nginx 就被返回 405 的 http code 了,根本就没请求到 php 里面去,但是就这么点量就让 nginx 扛不住了?

大家帮我看下我的 nginx 这部分配置是否有问题呢?


location ~ .*\.(php|php5)?$ {

if ($arg_r = 'api') {
return 405;
}
}

下面是 nginx 的整体配置

user www www;
worker_processes 8;
error_log /data/logs/nginx_error.log crit;
pid /usr/local/nginx/nginx.pi

worker_rlimit_nofile 65535;

events
{
use epoll;
worker_connections 65535;
}

http
{
include mime.types;
default_type application/octet-stream;

#charset gb2312;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 128k;
fastcgi_buffers 6 128k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#fastcgi_intercept_errors on;
server_tokens off;

real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 4;
gzip_types text/plain application/x-javascript text/css application/xml text/json application/javascript application/json;
gzip_vary on;

}



谢谢
2662 次点击
所在节点    Amazon Web Services
7 条回复
imherer
2017-07-04 13:50:32 +08:00
elb 监控里可以看到延迟的啊,你看看 究竟是不是 elb 延迟导致的
klakekent
2017-07-04 14:25:18 +08:00
@imherer 现在就是在 elb 里面能看到这个时间段延迟厉害 但是这个并不能确定是什么导致的
imherer
2017-07-04 14:50:33 +08:00
@klakekent 那这个应该是 aws 的锅吧? 向他们提 case 呢?
klakekent
2017-07-04 14:51:29 +08:00
@imherer 我先吧 elb 的日志弄下来研究下看看有没有线索
stabc
2017-07-04 14:58:27 +08:00
加一行 “ error_page 405 =200 $uri;” 试试。
另外你这个峰值才补到一百每秒,而且还用了 RDS,把 ELB 撤了直接一个 c3large 就顶住了吧。
monsterxx03
2017-07-04 15:26:44 +08:00
你监控上看的到的应该是 elb 的总时间,取日志看里面的 backend_processing_time, 这是你业务的实际时间. 还有看看 nginx 的日志
klakekent
2017-07-05 09:18:42 +08:00
@monsterxx03 目前就是这么干的 今天应该就可以看到详细情况了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/372910

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX