Попробовал уйти от потоков (из-за GIL) и экспериента ради попробовал multiprocessing.
Задача:
пройтись по базе в 1 миллион адресов и собрать нужные данные.
На сервере с Win Server 2003 (2,4GHz и 896 RAM) получается создать max 120 процессов (я понимаю, что процессы больше для многопроцессорных систем, но что поделаешь). Создать больше не могу из-за нехватки памяти (т.к. около 6Мб памяти уходит на 1 процесс). Создаются процессы крайне медленно: 100 процессов за 20 секунд где-то.
На сервере с Win Server 2003 (4 ядерный проц и 8GB RAM) процессы запускаются моментально, но 500 процессов работают почти также как 120 на более слабом сервере. Что-то тормозит процессы/переключения между ними?
На Linux сервере с Centos (Intel G6950 2.8GHz 2GB RAM) процессы также создаются быстро. Весят крайне мало (меньше 1 мегабайта), но и 200, и 30 процессов работают одинаково и практически не грузят процессор. Что их ограничивает на Linux (доступ из под root)?
Также интересно сколько нормально работающих потоков на C++ для работы с тем же libcurl я смогу запустить на первом сервере: Win Server 2003 (2,4GHz и 896 RAM)?
Попробовал PyPy 1.9, так там процессы и вовсе по 25 метров весят, а запускаются в раза 3 дольше.
p.s. Просьба не указывать на асинхронные фреймворки и не рассматривать их в данном топике.