Skip to content

Instantly share code, notes, and snippets.

@taf2
Last active January 25, 2019 17:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save taf2/683ca2f9cec226de44c8f992b1ca5cc2 to your computer and use it in GitHub Desktop.
Save taf2/683ca2f9cec226de44c8f992b1ca5cc2 to your computer and use it in GitHub Desktop.
using netstat to check for open connections while running requests
ruby t.rb
ruby: 2.1.5, linux: Linux ip-10-55-11-11 4.14.67-66.56.amzn1.x86_64 #1 SMP Tue Sep 4 22:03:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 1
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 2
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 2
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 2
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 2
ruby t.rb
ruby: 2.5.3, linux: Linux ip-10-55-11-11 4.14.67-66.56.amzn1.x86_64 #1 SMP Tue Sep 4 22:03:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
, curb: 0.9.7, curl: 7.53.1
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 0
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 12
tcp 0 0 10.55.11.11:36764 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38074 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38532 216.58.217.163:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38180 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:36654 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38168 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38176 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:42950 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59502 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38184 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:58770 172.217.15.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38172 151.101.249.178:80 ESTABLISHED 25162/ruby
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 20
tcp 0 0 10.55.11.11:43066 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:36764 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38280 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38074 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38532 216.58.217.163:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59614 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38180 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38284 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:36654 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38168 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38176 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:49224 216.58.217.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:42950 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59502 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38636 216.58.217.163:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38184 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:58770 172.217.15.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38288 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38276 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38172 151.101.249.178:80 ESTABLISHED 25162/ruby
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 33
tcp 0 0 10.55.11.11:49112 172.217.5.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:43066 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:36764 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38418 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:58994 172.217.15.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38280 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38074 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38532 216.58.217.163:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38292 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38426 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38430 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59614 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38180 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38284 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38400 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59764 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:36654 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:57914 216.58.218.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38168 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38176 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:49224 216.58.217.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:42950 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:43204 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59502 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38636 216.58.217.163:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38184 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:58770 172.217.15.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38288 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38422 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:51086 172.217.8.3:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38276 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38172 151.101.249.178:80 ESTABLISHED 25162/ruby
udp 0 0 10.55.11.11:56317 10.55.0.2:53 ESTABLISHED 25162/ruby
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
connections open: 40
tcp 0 0 10.55.11.11:49112 172.217.5.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:43066 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:36764 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38418 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:58994 172.217.15.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38280 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:49218 172.217.5.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38074 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:49488 216.58.217.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38532 216.58.217.163:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38292 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38426 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38430 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59614 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38536 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38180 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38284 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38400 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59764 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:36654 216.58.217.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:57914 216.58.218.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38168 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38176 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:49224 216.58.217.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:42950 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59870 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:57930 216.58.218.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38524 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:43204 172.217.15.67:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:59502 172.217.7.227:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38528 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38636 216.58.217.163:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38184 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:58770 172.217.15.99:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38288 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38422 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:51086 172.217.8.3:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38276 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38540 151.101.249.178:80 ESTABLISHED 25162/ruby
tcp 0 0 10.55.11.11:38172 151.101.249.178:80 ESTABLISHED 25162/ruby
^CTraceback (most recent call last):
2: from t.rb:50:in `<main>'
1: from t.rb:50:in `each'
t.rb:50:in `join': Interrupt
#
# Run this in the curb source folder.
$TOPDIR = File.expand_path(File.join(File.dirname(__FILE__), '.'))
$EXTDIR = File.join($TOPDIR, 'ext')
$LIBDIR = File.join($TOPDIR, 'lib')
$:.unshift($LIBDIR)
$:.unshift($EXTDIR)
require 'curb'
require 'thread'
$running = true
puts "ruby: #{RUBY_VERSION}, linux: #{`uname -a`}, curb: #{Curl::CURB_VERSION}, curl: #{Curl::VERSION}"
pid = Process.pid
t1 = Thread.new do
1000.times do
responses = {}
requests = ["http://www.google.co.uk/", "http://www.ruby-lang.org/"]
m = Curl::Multi.new
# add a few easy handles
requests.each do |url|
responses[url] = ""
c = Curl::Easy.new(url) do|curl|
curl.follow_location = true
curl.on_body{|data| responses[url] << data; data.size }
curl.on_success {|easy| }
end
m.add(c)
end
m.perform do
end
end
puts "done"
$running = false
end
t2 = Thread.new do
while $running
lines = `netstat -anp | grep #{pid}`
connections_open = lines.split("\n").size
puts "connections open: #{connections_open}"
if connections_open > 2
puts lines
end
sleep 1
end
end
[t1,t2].each(&:join)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment