zoukankan      html  css  js  c++  java
  • Accept 惊群现象测试perl脚本

    $uname -a
    Linux debian-11-34 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux
     
    经过测试Debina 8.0 已经解决了Aceept thundering herd 
     
     
    # 1) run this script with either "accept" or "select-accept" as the argument
    # (the script listens to 127.0.0.1:12345)
    # 2) telnet localhost 12345
    # 3) if you see "accept failed", there is the thundering herd problem
    #
    #
    use strict;
    use warnings;
    use IO::Socket::INET;

    my $mode = $ARGV[0] || '';
    if ($mode !~ /^(accept|select-accept)$/) {
        die "Usage: $0 <accept|select-accept> ";
    }
    my $listener = IO::Socket::INET->new(
                                         Listen => 5,
                                         LocalPort => 12345,
                                         LocalAddr => '127.0.0.1',
                                         Proto => 'tcp',
                                         ReuseAddr => 1,
                                         ) or die "failed to listen to port 127.0.0.1:12345:$!";

    if ($mode eq 'select-accept') {
        $listener->blocking(0)
        or die "failed to set listening socket to non-blocking mode:$!";
    }
    my $pid = fork;
    die "fork failed:$!"
    unless defined $pid;
    while (1) {
        if ($mode eq 'select-accept') {
            while (1) {
                my $rfds = '';
                vec($rfds, fileno($listener), 1) = 1;
                if (select($rfds, undef, undef, undef) >= 1) {
                    last;
                }
            }
        }
        my $conn = $listener->accept;
        if ($conn) {
            warn "connected!";
            $conn->close;
        } else {
            warn "accept failed:$!";
        }
    }
  • 相关阅读:
    [POJ 1463] Strategic Game
    [POI 2007] 堆积木
    [POJ 1609] Tiling Up Blocks
    warning: conflicting types for built-in function 'puts'
    u-boot.lds 链接脚本分析(hi3515)
    怎么看时序图--nand flash的读操作详解
    有关mapminmax的用法详解
    整理出来的一个windows关机、锁定、重启、注销 API调用
    C# FileStream Write追加写入文本
    C# FileStream 按大小分段读取文本内容
  • 原文地址:https://www.cnblogs.com/davad/p/4555228.html
Copyright © 2011-2022 走看看