Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: "Chris M. Thomasson" Newsgroups: comp.lang.c Subject: Re: Python recompile Date: Fri, 14 Mar 2025 19:33:59 -0700 Organization: A noiseless patient Spider Lines: 32 Message-ID: References: <20250310135828.116@kylheku.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 15 Mar 2025 03:34:00 +0100 (CET) Injection-Info: dont-email.me; posting-host="f54594f8eb80134925da391bfb78d663"; logging-data="2680969"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18tQLEtPZ8h9pq+RGERLqEXa/gDsqJCqr8=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:RKutT0/yEZ/2UOX7L5NWiyyWMhE= In-Reply-To: Content-Language: en-US Bytes: 3660 On 3/14/2025 7:30 PM, Chris M. Thomasson wrote: > On 3/14/2025 6:16 PM, Lawrence D'Oliveiro wrote: >> On Fri, 14 Mar 2025 16:25:48 -0700, Chris M. Thomasson wrote: >> >>>> This kind of thing does not scale to having thousands of connections >>>> open at once. >>> >>> Yawn. Of course it does! 50,000 concurrent connections way back in early >>> 2000's. >> >> So, you have, what is it, 50,000 concurrent read and/or 50,000 concurrent >> write requests in flight at once? >> >> By the way, the default “hard” process open-file limit on this system I’m >> using is half a million. > > It was about how to squeeze in 50,000 concurrent connections on some > (now) older hardware. There were many tricks... One of them being zero- > byte receives wrt IOCP. Keep in mind that IOCP can mess around with non- > paged memory. So, you have to be very careful! You are reminding me of a > so-called panic mode when the server would get to a point where shit > might hit the fan, do I would dump timedout connections, dump as much > cache as I could, but still try to maintain up time during times of > really heavy load. It was an interesting time. 23-24 years ago. I remember having a timeout thread that would see if a connection was in a stale condition. Each per-socket connection would have a current state and a sequence counter. Heck, in one of my very early tests I would intentionally try to crash it. If it did crash due to non-paged memory, malloc returning NULL, ect... It would be saving its state. Then I would see how the system went down. Try again with a threshold and see if I could do it again. Just experimenting and testing load.