Hey Mehmet,
Sometimes you may need to have GOMAXPROCS set to an even higher value than the the number of (virtual) cores if the program is bottlenecked by blocking I/O. In such cases, you may want to let the OS scheduler do its work in conjunction with the Go's one ;)
There is no universal recipe when it comes to optimizing programs. It is always down to profiling :)