V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
klakekent
V2EX  ›  Amazon Web Services

ELB 延迟问题

  •  
  •   klakekent · 2017-07-04 12:55:24 +08:00 · 2777 次点击
    这是一个创建于 2708 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近遇到个奇怪的问题。

    我的服务是搭在 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;

    }



    谢谢
    7 条回复    2017-07-05 09:18:42 +08:00
    imherer
        1
    imherer  
       2017-07-04 13:50:32 +08:00
    elb 监控里可以看到延迟的啊,你看看 究竟是不是 elb 延迟导致的
    klakekent
        2
    klakekent  
    OP
       2017-07-04 14:25:18 +08:00
    @imherer 现在就是在 elb 里面能看到这个时间段延迟厉害 但是这个并不能确定是什么导致的
    imherer
        3
    imherer  
       2017-07-04 14:50:33 +08:00
    @klakekent 那这个应该是 aws 的锅吧? 向他们提 case 呢?
    klakekent
        4
    klakekent  
    OP
       2017-07-04 14:51:29 +08:00
    @imherer 我先吧 elb 的日志弄下来研究下看看有没有线索
    stabc
        5
    stabc  
       2017-07-04 14:58:27 +08:00
    加一行 “ error_page 405 =200 $uri;” 试试。
    另外你这个峰值才补到一百每秒,而且还用了 RDS,把 ELB 撤了直接一个 c3large 就顶住了吧。
    monsterxx03
        6
    monsterxx03  
       2017-07-04 15:26:44 +08:00
    你监控上看的到的应该是 elb 的总时间,取日志看里面的 backend_processing_time, 这是你业务的实际时间. 还有看看 nginx 的日志
    klakekent
        7
    klakekent  
    OP
       2017-07-05 09:18:42 +08:00
    @monsterxx03 目前就是这么干的 今天应该就可以看到详细情况了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3026 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.