Есть ли смысл в многоядерности ЦП?
Подскажите владельцы ботов. Если на сервере будет один несчастный ботик, который не использует других библиотек, а также threading и т.п., есть ли смысл в 2-3-4 ядрах? или достаточно одного? какой будут нести смысл дополнительные ядра сверх 1
Дополнительно:
и тут я офигел.
Если на сервере будет один несчастный ботик, который не использует других библиотек, а также threading и т.п., есть ли смысл в 2-3-4 ядрах?
Если не брать в расчёт затраты на операционку и любой прочий софт, не использовать asyncio и multiprocessing, а так же не выполнять код параллельно, то смысл в районе погрешности.
Сколько ядер CPU можно использовать в Python?
How to Use 100% of All CPU Cores in Python
- asyncio использует все доступные ядра и сама распределяет всё между ними? может глупый вопрос, но такого в гугле нет) только стандартные слова как круто и удобно
- nedland, потому что такого и нет asyncio так же живет в рамках одно ядра
- nedland, asyncio это один поток, так что сам event loop использует только одно ядро, но это не мешает запускать из него выполнение кода используя другие ядра, тем же run_in_executor, либо запустить несколько инстансов сервиса.
- nedland,
asyncio использует все доступные ядра и сама распределяет всё между ними?
Нет, в Python автоматически ничего не распределяется по ядрам и процессорам, все нужно прописать руками.
Что касается asyncio, то он однопоточный и асинхронный, позволяет загрузить 1 ядро процессора (по дефолту), и если он его загрузит на 100%, то другой софт не сможет быть выполнен, пока не освободится часть мощности ядра. Поэтому, в данном случае лучше иметь лишнее ядро, чем не иметь.
Ответы:
Второе ядро даст незначительный прирост в плане параллельного выполнения потоков ядра операционой системы и других процессов (коих даже на «голом» Linuxе висит несколько десятков), от третьего и последующих в описанных условиях толку никакого не будет.
В остальном же всё зависит от нагрузки. Если она небольшая (1-2 обращений в секунду и нет сложных вычислений типа нейронных сетей), то одного ядра хватит спокойно. Например, у меня два бота висят на одноядерном VDS, и на нём же крутится MySQL с базой для одного из них, и всё вполне нормально работает, причём один из ботов постоянно устанавливает исходящие запросы (выполняет мониторинг сайтов). Правда, боты написаны на PHP+Go, а не Python. Но к этим ботам всего всего несколько тысяч обращений в сутки.
- Если машина имеет хотя бы 512 мб оперативки и ядра более менее современные , , то хватит одного. У меня на vds серверах крутятся, на одноядернике 2 питон бота для телеги, в пике потребляют 20 процецентов процессорного времени при слежении через ssh.
На машине в 2 ядра и 2 гига вообще v...n сервер, амнезия, два криптобота и 1 для телеги, и сервак максимум на 50 процентов нагружен. Ага что требования простых скриптов крайне малые))
Нет можно запускать на одном ядре если не используется никакая параллельность вроде тредов и асинка
прирост от многоядерности будет минимальный, проще взять одно ядро и помощнее в два раза и будет работать в два раза быстрее
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Многоядерные процессоры стали стандартом в современных компьютерах и устройствах. Они позволяют выполнять несколько задач одновременно, что повышает производительность и ускоряет выполнение программ. Однако, не всегда использование многоядерных процессоров оправдано.
Смысл в многоядерности ЦП зависит от того, для каких задач вы планируете использовать компьютер. Некоторые задачи, такие как обработка видео, многозадачность и параллельные вычисления, могут значительно выиграть от наличия многоядерного процессора. В таких случаях, приложения могут эффективно использовать все ядра для распределения нагрузки и ускорения работы.
Однако, для некоторых задач, например, выполнение однопоточных приложений или простых операций, многоядерный процессор может оказаться излишним. В этом случае, процессор будет работать не на полную мощность, что может быть неэффективно с точки зрения затрат на оборудование.
Также стоит учитывать, что не все программы и приложения способны эффективно использовать многоядерность процессора. Некоторые приложения могут быть оптимизированы только под одно ядро, что может снизить общую производительность системы.
В целом, использование многоядерных процессоров имеет смысл в случаях, когда вам нужно обрабатывать большие объемы данных, выполнять множество задач одновременно или проводить параллельные вычисления. Однако, при выборе компьютера или сервера, следует учитывать конкретные потребности и задачи, которые будут выполняться на устройстве.