美文网首页
jemeter 踩坑日记

jemeter 踩坑日记

作者: dongdog | 来源:发表于2020-05-21 16:45 被阅读0次

    一. 500

    image.png

    把body 拿出来 放到html


    image.png

    然后查询资料

    1.1.问题描述

    异常, 都是 java.net.NoRouteToHostException: Cannot assign requested address.
    经网上查资料, 是由于linux分配的客户端连接端口用尽, 无法建立socket连接所致,虽然socket正常关闭,但是端口不是立即释放, 而是处于TIME_WAIT状态, 默认等待60s后才释放。
    查看linux支持的客户端连接端口范围, 也就是28232个端口:
    cat /proc/sys/net/ipv4/ip_local_port_range
    32768 - 61000

    解决方法

    注意,可能直接编辑文件后无法保存
    1.1. 调低端口释放后的等待时间, 默认为60s, 修改为15~30s
    echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
    1.2. 修改tcp/ip协议配置, 通过配置/proc/sys/net/ipv4/tcp_tw_resue, 默认为0, 修改为1, 释放TIME_WAIT端口给新连接使用。
    echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

      1. 修改tcp/ip协议配置,快速回收socket资源, 默认为0, 修改为1.
        echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

    二. 502

    php fpm 无法分配php线程会出现 提升服务器性能

    默认设置 httpClinet4

    2.1. 查看php-fpm的进程个数

    ps -ef |grep "php-fpm"|grep "pool"|wc -l

    2.2.查看每个php-fpm占用的内存大小

    ps -ylC php-fpm --sort:rss

    2.3.查看PHP-FPM在你的机器上的平均内存占用

    ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'

    2.4.查看单个php-fpm进程消耗内存的明细

    pmap $(pgrep php-fpm) | less

    三. JAVA.NET.SOCKETEXCEPTION: SOCKET CLOSED错误

    解决
    Socket closed

    Non HTTP response code: org.apache.http.NoHttpResponseException (the target server failed to respond)

    资料查询:https://wiki.apache.org/jmeter/JMeterSocketClosed

    问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive(这个是什么?看后面资料),这个是连接协议,JMeter坑就在这里,默认勾选了这个(如果不勾选的话,也不会保存),但其配置JMeter.properties中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形。


    image.png

    解决:修改httpclient4.idletimeout=<time in ms> 设置成自己觉得合理的时间,一般可设置成10-60s(表示连接空闲10s后才会断开),注意这边单位是ms。修改完成后再次压测,错误不再有了。


    image.png

    相关文章

      网友评论

          本文标题:jemeter 踩坑日记

          本文链接:https://www.haomeiwen.com/subject/sahtahtx.html