func rlimitValidator()

in resources/templates/goad-cdk/load-gen/loadgen.go [356:382]


func rlimitValidator(desired int) {
	var rLimitActual unix.Rlimit
	err := unix.Getrlimit(unix.RLIMIT_NOFILE, &rLimitActual)
	if err != nil {
		fmt.Println("Error getting Rlimit", err)
	}
	fmt.Printf("Rlimit before: %v\n", rLimitActual)

	var rLimitDesired unix.Rlimit
	rLimitDesired.Max = 65535
	rLimitDesired.Cur = 65535

	err = unix.Setrlimit(unix.RLIMIT_NOFILE, &rLimitDesired)
	if err != nil {
		fmt.Println("Error Setting Rlimit ", err)
	}

	err = unix.Getrlimit(unix.RLIMIT_NOFILE, &rLimitActual)
	if err != nil {
		fmt.Println("Error getting Rlimit", err)
	}
	fmt.Printf("Rlimit after: %v\n", rLimitActual)

	if rLimitActual.Cur < uint64(desired) {
		log.Printf("WARNING: max open files %d < desired concurrent connections %d", rLimitActual.Cur, desired)
	}
}