Назад | Перейти на главную страницу

Завершение работы в сценарии запуска занимает много времени

Я добавил сценарий bash в метаданные экземпляра, который выполняет некоторые тесты, а затем выполняет следующую команду в конце сценария.

shutdown -h now

Экземпляр и изображение после этого удаляются "сценарием создания".

Экземпляр становится недоступным через SSH, но не устанавливает для него TERMINATED пока вроде через 10 минут. В это время он по-прежнему отображается как RUNNING.

Все смотрит на это должно в последовательной консоли.

Aug  5 16:54:20 database-integrity-test systemd[1]: Stopping Session 1 of user my-user.
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopping User Manager for UID 1001...
Stopping Authenticate and Authorize Users to Run Privileged Tasks...
[[0;32m  OK  [0m] Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.
[[0;32m  OK  [0m] Stopped target Mail Transport Agent.
[[0;32m  OK  [0m] Stopped target Timers.
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopping Authenticate and Authorize Users to Run Privileged Tasks...
[[0;32m  OK  [0m] Stopped Daily Cleanup of Temporary Directories.
[[0;32m  OK  [0m] Stopped target Graphical Interface.
Aug  5 16:54:20 database-integrity-test systemd[1]: Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.
Stopping Accounts Service...
Stopping ACPI event daemon...
[[0;32m  OK  [0m] Stopped target Cloud-init target.
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopped target Mail Transport Agent.
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopped target Timers.
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopped Daily Cleanup of Temporary Directories.
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopped target Graphical Interface.
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopping Accounts Service...
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopping ACPI event daemon...
Aug  5 16:54:20 database-integrity-test systemd[1]: Stopped target Cloud-init target.
and so on . . . .

Мы хотим свести к минимуму обслуживание этих «вытесняемых экземпляров теста целостности», чтобы сэкономить средства, тест занимает пару минут для небольших баз данных. Ожидание завершения работы в 10 или 20 раз дольше, чем фактический тест, складывается со временем.

Решением было бы связаться с экземпляром и завершить его через Google Cloud API, но я бы хотел этого избежать.

Кто-нибудь еще сталкивался с этой проблемой?

Для того, что вы пытаетесь выполнить, я думаю, было бы лучше, если бы экземпляр выполнил свою задачу, а затем использовал API Google GCE чтобы потом удалить экземпляр. Таким образом, вы можете использовать сценарий удаленно, а также иметь другие функции.

Кроме того, вы можете продолжать использовать сценарий bash в метаданных экземпляра, чтобы удалить экземпляр после того, как он завершил свою работу. Тем не менее, это потенциальные проблемы с задержкой, подобные описанной вами; Вот почему вместо этого лучше всего использовать API.

Также я бы посоветовал ознакомиться со следующими документами:

  1. Документация по хранению и получению метаданных экземпляра

  2. Доступ к метаданным экземпляра