Мой сервер отключил несколько дисков, и я не знаю, почему?

Could all 700 instances possibly run concurrently?

Это зависит от того, что вы подразумеваете под одновременно. Если мы придирчивы, то нет, они не могут, если у вас нет 700 потоков выполнения в вашей системе, вы можете использовать (так что, вероятно, не ). На самом деле, да, они, вероятно, могут, если у вас достаточно оперативной памяти и/или места подкачки в системе. UNIX и его различные дочерние системы замечательно справляются с управлением огромными уровнями параллелизма, и это одна из причин, почему они так популярны для крупномасштабного -использования высокопроизводительных вычислений.

How far could I get until my server reaches its limit?

На этот вопрос невозможно ответить конкретно без дополнительной информации. В значительной степени вам нужно иметь достаточно памяти, чтобы соответствовать:

  • Время выполнения -требования к памяти для одного задания, умноженное на 700.
  • Требования bash к памяти для управления таким количеством заданий (bash не так ужасен в этом, но управление заданиями не совсем эффективно с точки зрения использования памяти ).
  • Любые другие требования к памяти в системе.

Если вы снова столкнетесь с этим (, имея только 50 ГБ ОЗУ, вам все равно придется решать другие проблемы.:

  • Сколько процессорного времени тратит bash на управление заданиями? Вероятно, немного, но с сотнями рабочих мест это может быть значительным.
  • Какая для этого потребуется пропускная способность сети? Простое открытие всех этих подключений может привести к перегрузке вашей сети на пару минут в зависимости от пропускной способности и задержки.
  • Много других вещей, о которых я, вероятно, не подумал.

When that limit is reached, will it just wait to begin the next iteration off foo or will the box crash?

Это зависит от того, какой предел достигнут. Если это память, то в системе что-то умрет (, точнее говоря, будет убито ядром при попытке освободить память )или может произойти сбой самой системы (заканчивается память ). Если это время ЦП, оно будет продолжать работать без проблем, просто будет невозможно сделать что-то еще в системе. Однако, если это сеть, вы можете привести к сбою других систем или служб.


Что вам действительно здесь нужно, так это не запускать все задания одновременно. Вместо этого разделите их на пакеты и запустите все задания в пакете одновременно, дайте им завершиться, а затем запустите следующий пакет. Для этого можно использовать GNU Parallel (https://www.gnu.org/software/parallel/), но он далеко не идеален при таком масштабе в производственной среде (. системы, к которым в противном случае вы бы не прикоснулись ). Я действительно рекомендую поискать подходящий инструмент для организации сети, такой как Ansible (https://www.ansible.com/), так как он не только решит ваши проблемы с параллелизмом (Ansible выполняет пакетную обработку, как я упоминал выше, автоматически ), но также даст вам много других полезных функции для работы с (, такие как идемпотентное выполнение задач, удобные отчеты о состоянии,и встроенная интеграция с очень большим количеством других инструментов ).

0
21.04.2021, 16:44
1 ответ

Лучшее место —/var/log/dmesg

Вы можете найти все журналы, в которых упоминается установка или размонтирование

$ sudo grep  mount /var/log/dmesg
0
28.04.2021, 22:51

Теги

Похожие вопросы