package main import ( "log" "net" "os" "syscall" ) func lookup() { sem := make(chan interface{}, 100) for { sem <- nil go func() { for { os.Open("/dev/null") net.ResolveIPAddr("ip", "example.com") } <-sem }() } } func main() { if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &syscall.Rlimit{Max: 20, Cur: 20}); err != nil { log.Printf("failed setting RLIMIT_NOFILE to a small value") } lookup() }