On Github perfug / perfug-11-quizz
Raphael Luta
What is this ?
Quel bénéfice moyen représente pour un Hedge Fund une diminution de latence de 1ms entre Londres et New York ?
Comment est-ce possible de faire 22,5 Moctets de transfert par seconde sur une interface à 100 Mb/s ?
$ ethtool eth0 Settings for eth0: Speed: 100Mb/s Duplex: Full
$ ifconfig eth0 Eth0 Link encap:Ethernet HWaddr 4c:72:b9:67:21:75 inet addr:5.135.179.200 Bcast:5.135.179.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
$ ab -n 1000 -c 1 http://5.135.179.200:8000/ Benchmarking 5.135.179.200 (be patient) Document Path: / Document Length: 42012 bytes Concurrency Level: 1 Time taken for tests: 18.349 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 422860000 bytes HTML transferred: 420120000 bytes Requests per second: 544.98 [#/sec] (mean) Time per request: 1.835 [ms] (mean) Time per request: 1.835 [ms] (mean, across all concurrent requests)Transfer rate: 22504.84 [Kbytes/sec] received
Ethernet bypass sous Linux Comportement comme interface lo mais différente
$ netstat -rn Destination Gateway Flags Refs Use Netif Expire default 192.168.1.254 UGSc 18 0 en1 127 127.0.0.1 UCS 0 0 lo0 127.0.0.1 127.0.0.1 UH 6 502225 lo0 192.168.1 link#5 UCS 6 0 en1 192.168.1.101 127.0.0.1 UHS 0 0 lo0
Je veux envoyer un fichier DivX (600 Mo) à un ami qui habite à 1000 m. Quel est le moyen d’envoi le plus rapide ?
Le proxy TCP ci-dessous fonctionne mais les performances sont catastrophiques. Comment l’améliorer ?
def srvDst = args[0],b def bufferSize = 128 * 1024 // 128 kB def server = new ServerSocket(4444) server.setReceiveBufferSize(bufferSize) while(true) { server.accept { socket -> socket.setTcpNoDelay(true) def client = new Socket(srvDst,8080) client.setTcpNoDelay(true) client.setSendBufferSize(bufferSize) socket.withStreams { sinput, soutput -> client.withStreams { cinput, coutput -> while ((b = sinput.read()) >= 0) coutput.write(b) } } client.close() } }