Sounds sensible to me. I haven't read the entire thread, pun intended ;-), so just checking if you tried debug.SetMaxThreads <https://pkg.go.dev/runtime/debug#SetMaxThreads>?
On Thu, 1 Feb 2024 at 16:42, Steve Roth <st...@rothskeller.net> wrote: > Fair question. In their view, 25 threads per user is a sensible limit. > Their mindset is based around single-threaded PHP. And for that reason > among others, yes, switching providers is definitely something I will > pursue. But that will be a long-term effort. Right now I'm looking for a > short-term solution to get my site back up. > > Thanks, > Steve > > On Thu, Feb 1, 2024 at 8:34 AM Steven Hartland <stevenmhartl...@gmail.com> > wrote: > >> To be honest I would question if its a usable solution if they are >> limiting that low on threads, so is the fix to switch or have the provider >> increase the limit to a sensible number? >> >> On Thu, 1 Feb 2024 at 16:08, Steve Roth <st...@rothskeller.net> wrote: >> >>> Thanks to the people who suggested how to limit the number of apparent >>> cores. Unfortunately, doing that didn't solve the problem. I have the >>> number of cores now limited to two — confirmed by checking runtime.NumCPU() >>> — but the program is still trying to allocate more than 25 threads, and >>> crashing when cgroups won't let it. >>> >>> Surely there must be some way to get a Go program to run successfully in >>> an environment with process limits? Any further suggestions would be >>> greatly appreciated. >>> >>> Regards, >>> Steve >>> >>> >>> On Wed, Jan 31, 2024 at 6:43 PM Steve Roth <st...@rothskeller.net> >>> wrote: >>> >>>> I am running Go code on a shared web hosting server from a major >>>> hosting company. Using cgroups, they limit the number of threads any user >>>> can create to 25. Up until a week ago, they had me running on a server >>>> with 24 cores, and everything worked fine. Now they've moved me to a new >>>> server with 128 cores. The Go runtime thinks it should be able to create >>>> that many threads, and it can't, and all of my Go programs crash with, >>>> "runtime: failed to create new OS thread". >>>> >>>> Setting GOMAXPROCS doesn't help this, since it only controls the number >>>> of active threads, not the total number of threads. The Go runtime still >>>> thinks it can create as many threads as there are cores, and crashes the >>>> program when it's blocked from doing so. >>>> >>>> Is there any way around this? Or is Go just completely unusable in an >>>> environment where the per-user process limit is less than the number of >>>> cores? >>>> >>>> Many thanks, >>>> Steve >>>> >>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golang-nuts+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/golang-nuts/CAAnpqKEzZcFxDkG2Qtzf25hPwkZq2EstbDbYtBz4CtTaBQxqWA%40mail.gmail.com >>> <https://groups.google.com/d/msgid/golang-nuts/CAAnpqKEzZcFxDkG2Qtzf25hPwkZq2EstbDbYtBz4CtTaBQxqWA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAA38peYmwZ6U7_Y5aV9zMDHc_5TKGmOLn6dwy%3DwKPNrNwy%3Dfag%40mail.gmail.com.