Hello,

fixing authdial bug I got remarkable result.

I measured using mobile wireless network (the bandwidth is a few tens mega bps).

before fixing:
0.00u 0.00s 44.73r       cpu -h grid.nyx.link -k 
dom=outside.plan9.bell-labs.com ...
0.00u 0.00s 9.35r        cpu -h grid.nyx.link -k 
dom=outside.plan9.bell-labs.com ...
0.00u 0.01s 9.39r        cpu -h grid.nyx.link -k 
dom=outside.plan9.bell-labs.com ...

after fixing:
0.00u 0.01s 14.59r       cpu -h tcp!grid.nyx.link -k dom=luna.nyx.link ...
0.00u 0.04s 7.65r        cpu -h tcp!grid.nyx.link -k dom=luna.nyx.link ...
0.00u 0.00s 7.51r        cpu -h tcp!grid.nyx.link -k dom=luna.nyx.link ...

you need to recompile libauthsrv, factotum and kernel.
I am happy if anyone send me data from outside of japan.
putting “tcp!” is clumsy. fixing cpu.c is also desirable.

p.s. thanks skip for the suggestion.

Kenji Arisawa

> 2016/05/14 22:30、arisawa <[email protected]> のメール:
> 
> Hello
> 
> this is a partial report of cpu command latency.
> 
> we have code below in rexcall() of cpu.c 
> 
>       na = netmkaddr(host, 0, service);
>       //na = netmkaddr(host, “tcp”, service);//DBG
>       syslog(0,"cpu","rexcall:netmkaddr %lld μsec; 
> %s",(nsec()-t0)/1000,na);//DBG
>       procsetname("dialing %s", na);
>       syslog(0,"cpu","rexcall:dialing %lld μsec; 
> %s",(nsec()-t0)/1000,na);//DBG
>       if((*fd = dial(na, 0, devdir, 0)) < 0)
>               return "can't dial";
>       syslog(0,"cpu","rexcall:dial %lld μsec",(nsec()-t0)/1000);//DBG
> 
> lines with “DBG” are code added for measurement.
> looking the result I found dial() takes as much as on second in my home 
> network!
> 
>       vbt May 14 21:27:52 rexcall:netmkaddr 122 μsec; net!io!ncpu
>       vbt May 14 21:27:52 rexcall:dialing 592 μsec; net!io!ncpu
>       vbt May 14 21:27:53 rexcall:dial 1161556 μsec
> 
>       vbt May 14 21:27:57 rexcall:netmkaddr 677 μsec; net!io!ncpu
>       vbt May 14 21:27:57 rexcall:dialing 1082 μsec; net!io!ncpu
>       vbt May 14 21:27:58 rexcall:dial 1109949 μsec
> 
> replacing
>       na = netmkaddr(host, 0, service);
> by
>       na = netmkaddr(host, “tcp”, service);
> we get much better performance as shown below.
>       vbt May 14 22:21:18 rexcall:netmkaddr 489 μsec; tcp!io!ncpu
>       vbt May 14 22:21:18 rexcall:dialing 861 μsec; tcp!io!ncpu
>       vbt May 14 22:21:18 rexcall:dial 3099 μsec
> 
>       vbt May 14 22:21:22 rexcall:netmkaddr 565 μsec; tcp!io!ncpu
>       vbt May 14 22:21:22 rexcall:dialing 977 μsec; tcp!io!ncpu
>       vbt May 14 22:21:22 rexcall:dial 7287 μsec
> 
> isn’t it better the default net be “tcp”?
> even if you do want “net”, you can do
>       cpu -h net!host 
> 
> Kenji Arisawa
> 
> 
> 
>> 2016/05/13 0:40、Skip Tavakkolian <[email protected]> のメール:
>> 
>> it might be worth instrumenting the cpu command to time the authenticaiton 
>> step. i think that's where the problem is.
>> 
>> On Wed, May 11, 2016 at 3:39 PM Skip Tavakkolian 
>> <[email protected]> wrote:
>> what's the latency caused by the auth step?
>> FYI, from Seattle I see about 8 seconds to establish but as Charles noted, 
>> it's reasonably fast after that.
>> 
>> 
>> On Wed, May 11, 2016 at 2:05 PM arisawa <[email protected]> wrote:
>> Hello,
>> 
>> we can measure the latency that comes from network connection
>> by executing simple program such as telnet or something others
>> to the port 8006 of grid.nyx.link. the content is:
>> #!/bin/rc
>> cat $net/local
>> cat $net/remote
>> 
>> yes the DNS may make a problem in IPv4/IPv6 mixed environment.
>> my server supports both IPs.
>> the cpu command will select IPv4. the command does not have “-6” option.
>> If we want to connect by IPv6, literal IP address is required in the 
>> argument of the command.
>> 
>> Kenji Arisawa
>> 
>>> In my experience, it's almost unfailingly the DNS that slows down
>>> establishing an Internet session of any type.
>>> 
>>> Lucio.
>> 
>>> 2016/05/12 0:23、Kenny Lasse Hoff Levinsen <[email protected]> のメール:
>>> 
>>> Well, based on the 9fs test that was posted, I'd think dial is being 
>>> awfully slow.
>>> 
>>> Maybe try something simpler? aux/listen1 echo hello and a simple network 
>>> connection?
>>> 
>>> Best regards,
>>> Kenny Levinsen
>>> 
>>> On 11. maj 2016, at 16.13, Charles Forsyth <[email protected]> 
>>> wrote:
>>> 
>>>> 
>>>> On 11 May 2016 at 14:44, Kenny Lasse Hoff Levinsen 
>>>> <[email protected]> wrote:
>>>> Delete the channel from /srv in the loop to test a full remote mount 
>>>> dance, including the initial dial. It shouldn't take 3s to dial, though.
>>>> 
>>>> There's something initially slow in connecting to  grid.nyx.link with cpu, 
>>>> and setting up, but once there it's fine.
>> 
>> 
> 
> 


Reply via email to