selectel дает бесплатный dns хостинг с API, мы под него ansible модуль написали для управления, при желании можно сделать плагин для certbot, но нам массово wildcard ssl не нужен.
У меня давно проблема: когда открываю новый проект, он открывается где-то в фоне, а фокус остается у текущего проекта. Такое началось примерно с 2017.1 EAP, я уже смирился и привык, думал, что это один из моих плагинов.
Оказалось, вышел antigen 2.0, теперь тот же самый конфиг отрабатывает за 180 мс, в начале было около 1000 мс, такая скорость меня полностью устраивает, всем спасибо!
Нашел, 60 мс добавляет compinit в /etc/zsh/zshrc в Ubuntu 16.04, оно завернуто в условие на переменную skip_global_compinit, я добавил в /etc/zsh/zshenv строчку:
skip_global_compinit=1
После этого конфиг стал грузиться 300 мс вместо 600!
Я почти уверен, что при этом что-то сломалось, но на первый взгляд все дополнения работают, может подскажете, что дает compinit и где искать потерянный функционал?
$ free -m
total used free shared buff/cache available
Mem: 24028 14752 217 147 9058 8673
Swap: 4767 3976 791
$ uptime
23:04:17 up 17 days, 1:02, 5 users, load average: 0.07, 0.11, 0.21
Сейчас перепроверил, 0.06 примерно выдает, видимо вчера какие-то zwc тяжелые оставались, все равно в 6 раз больше, чем у вас. Странно…
А с -f тоже по нулям.
Дальше была какая-то магия: после комментирования-раскомментирования разных плагинов в итоге получилось так, что вышеописанный конфиг стал грузиться 250 мс.
Через какое-то время понял, что включение-отключение тяжелого плагина иногда (не всегда!) оставляет его в кеше, поэтому вашу команду дополнил:
rm ~/.*.zwc; time zsh -i -c 'echo ok'
Если включить один из плагинов: docker, pip, python, vagrant, хоть один, хоть все сразу — время увеличивалось на 250 мс. Явно что-то там где-то общее подгружается, хотя я заглянул в них (кроме огромного docker) и ничего такого общего не увидел. Почему так может быть?
В одном из своих плагинов нашел ошибку, которую я буквально вчера посчитал хорошей идеей: вместо копипаста списка команд своего скрипта я вызывал args="$(myscript help)" и сохранял его в массив, это стоило мне +250 мс.
Еще нашел virtualenvwrapper, +250 мс
В итоге, удалил свой кривой плагин, удалил pyvirtualenv, получил 320-330 мс стабильных, если включить 4 странных плагина (docker, pip, python, vagrant), то 630-680 мс. В начале было около 1 секунды.
Можно ваш конфиг попробовать? Мне кажется, что дело не только в конфиге, что-то у меня еще не в порядке.
Я смотрю тут одни матерые сисадмины с 100+ чужих серверов собрались. У меня другой сценарий: 6 машин, включая локальную, везде через ansible накатывается плюс-минус один конфиг zsh с плагинами (есть небольшие различия из-за того, что оси разные, все различия также лежать в плейбуках).
Все 2 коллеги не против моего конфига, они всегда сидели в дефолтном баше, куча плагинов им при этом не мешает, некоторыми даже пользуются (о которых знают), с парой секунд ожидания на старте мы готовы мириться.
На чужих серверах мне редко приходится бывать, да, там не хватает zsh дополнений и прочего, но 99% времени я провожу в настроенных мной терминалах.
Согласен, если приходится часто бывать на чужих машинах, лучше привыкать к дефолтам, но зачем ограничивать себя на подконтрольных машинах, если все время сидишь на них — не понимаю.
Не исключаю, что все, что нужно можно написать в одном конфиге на bash, но зачем, если можно пользоваться готовым?
Да, как пользователь я вижу, что проект живет. Если полазить по ишьюсам, то становится понятно, что metacloud сейчас активно пишут 2-ю версию molecule, там будут сценарии, которых мне сейчас не хватает.
Для меня тема тестирования ansible ролей и плейбуков сейчас очень интересна, поэтому задам пару вопросов:
1. Знаете ли вы репозитории, где можно посмотреть примеры адекватных тестов, без проверки того, что ansible уже проверяет?
2. Каким фреймворком пользуетесь вы для тестирования (kitchen, molecule, самописный)?
3. Используете ли вы тесты для проверки продакшена, или только на CI? Если используете, то запускаете ли вы тесты периодически (как healthcheck) или только сразу после разворачивания?
4. Чем из перечисленного тестируете вы? Мне по читаемости больше нравится goss, но мне почему-то кажется, что выживет testinfra.
Сейчас посмотрел, в acme.sh уже есть поддержка selectel, круто!
selectel дает бесплатный dns хостинг с API, мы под него ansible модуль написали для управления, при желании можно сделать плагин для certbot, но нам массово wildcard ssl не нужен.
У меня давно проблема: когда открываю новый проект, он открывается где-то в фоне, а фокус остается у текущего проекта. Такое началось примерно с 2017.1 EAP, я уже смирился и привык, думал, что это один из моих плагинов.
Оказалось, вышел antigen 2.0, теперь тот же самый конфиг отрабатывает за 180 мс, в начале было около 1000 мс, такая скорость меня полностью устраивает, всем спасибо!
Нашел, 60 мс добавляет
compinit
в /etc/zsh/zshrc в Ubuntu 16.04, оно завернуто в условие на переменнуюskip_global_compinit
, я добавил в /etc/zsh/zshenv строчку:После этого конфиг стал грузиться 300 мс вместо 600!
Я почти уверен, что при этом что-то сломалось, но на первый взгляд все дополнения работают, может подскажете, что дает compinit и где искать потерянный функционал?
Система совсем не загружена:
Сейчас перепроверил, 0.06 примерно выдает, видимо вчера какие-то zwc тяжелые оставались, все равно в 6 раз больше, чем у вас. Странно…
А с -f тоже по нулям.
Спасибо, подебажил свой конфиг (core i5, hdd, ubuntu 16.04, zsh 5.1.1):
100 мс — пустой .zshrc
350 мс — + пустой antigen && antigen apply
450 мс — + тема (powerlevel9k)
Дальше была какая-то магия: после комментирования-раскомментирования разных плагинов в итоге получилось так, что вышеописанный конфиг стал грузиться 250 мс.
Через какое-то время понял, что включение-отключение тяжелого плагина иногда (не всегда!) оставляет его в кеше, поэтому вашу команду дополнил:
Если включить один из плагинов: docker, pip, python, vagrant, хоть один, хоть все сразу — время увеличивалось на 250 мс. Явно что-то там где-то общее подгружается, хотя я заглянул в них (кроме огромного docker) и ничего такого общего не увидел. Почему так может быть?
В одном из своих плагинов нашел ошибку, которую я буквально вчера посчитал хорошей идеей: вместо копипаста списка команд своего скрипта я вызывал
args="$(myscript help)"
и сохранял его в массив, это стоило мне +250 мс.Еще нашел virtualenvwrapper, +250 мс
В итоге, удалил свой кривой плагин, удалил pyvirtualenv, получил 320-330 мс стабильных, если включить 4 странных плагина (docker, pip, python, vagrant), то 630-680 мс. В начале было около 1 секунды.
Можно ваш конфиг попробовать? Мне кажется, что дело не только в конфиге, что-то у меня еще не в порядке.
Я смотрю тут одни матерые сисадмины с 100+ чужих серверов собрались. У меня другой сценарий: 6 машин, включая локальную, везде через ansible накатывается плюс-минус один конфиг zsh с плагинами (есть небольшие различия из-за того, что оси разные, все различия также лежать в плейбуках).
Все 2 коллеги не против моего конфига, они всегда сидели в дефолтном баше, куча плагинов им при этом не мешает, некоторыми даже пользуются (о которых знают), с парой секунд ожидания на старте мы готовы мириться.
На чужих серверах мне редко приходится бывать, да, там не хватает zsh дополнений и прочего, но 99% времени я провожу в настроенных мной терминалах.
Согласен, если приходится часто бывать на чужих машинах, лучше привыкать к дефолтам, но зачем ограничивать себя на подконтрольных машинах, если все время сидишь на них — не понимаю.
Не исключаю, что все, что нужно можно написать в одном конфиге на bash, но зачем, если можно пользоваться готовым?
да, и после этого у меня вот что стало:
Вообще статья немного устарела с тех пор, теперь роль работает поверх antigen, добавилось еще несколько плагинов, актуальная информация в readme.
Спасибо, попробую!
Да, как пользователь я вижу, что проект живет. Если полазить по ишьюсам, то становится понятно, что metacloud сейчас активно пишут 2-ю версию molecule, там будут сценарии, которых мне сейчас не хватает.
Да, я им и пользуюсь, но подозрительно мало инфы о нем.
REPORTTIME, не знал этого. Только это не совсем то, он выводит время user + system, то есть использование процессора, а не время выполнения команды.
Например,
у меня вывел
но т.к. user + system = 0.72, время при REPORTTIME=1 мне не покажут.
sleep вообще процессор не потребляет и никогда не будет выведен через REPORTTIME
Слышал про fish, после вашего коммента посмотрел, расскажу, что я понял за 10 минут.
Плюсы fish:
Минусы fish:
В общем смысла менять zsh на fish не вижу. Тем более менять на серверах, где я не один сижу.
1. Знаете ли вы репозитории, где можно посмотреть примеры адекватных тестов, без проверки того, что ansible уже проверяет?
2. Каким фреймворком пользуетесь вы для тестирования (kitchen, molecule, самописный)?
3. Используете ли вы тесты для проверки продакшена, или только на CI? Если используете, то запускаете ли вы тесты периодически (как healthcheck) или только сразу после разворачивания?
4. Чем из перечисленного тестируете вы? Мне по читаемости больше нравится goss, но мне почему-то кажется, что выживет testinfra.
А у вас кроме алиасов и fzf ничего интересного нет?