Перезагрузка сервера – достаточно долгий момент, порой может доходить до 10 минут: пока произойдёт инициализация железа, пока передастся управление загрузчику ОС. Если нужно перегрузить только саму ОС, без полного ребута сервера – можно использовать удобный механизм fastreboot. Рассмотрим, как он реализован в разных ОСях.
Категорія: Solaris
Если слишком медленно получаем вывод сетевых утилит типа arp, netstat, то достаточно добавить ключ ‘-n’ что бы не резолвились имена и получим моментальный вывод. Медленный вывод замечал только на Linux/Solaris, на FreeBSD/OpenBSD вывод быстрый.
Пример: arp -an, netstat -rn, ping -n HOST
Что такое Selenuim – можно прочитать на wiki. Здесь опишу только установку
Тестовый стенд: Solaris 11.1 x86, selenium-server-standalone-2.30.0, Debian linux 7.2
Скачиваем selenium-server-standalone с официального сайта http://selenium.googlecode.com/files/selenium-server-standalone-2.30.0.jar в папку /opt/selenium.
Обновляем Solaris 10
Для обновления Solaris 10-ой версии нужно использовать luupgrade.
Тестовый стенд: Solaris 10 (Generic_147441-01)
1) Подготовка.
Я использовал скачанный образ Solaris 10u11 в качестве источника для обновлений. Монтируем указанный образ в /mnt:
# mount -F hsfs /dev/dsk/c0t0d0s2 /mnt
# uname -a
SunOS sol10new 5.10 Generic_147441-01 i86pc i386 i86pc
Ниже буде приведены однострочники для dtrace, которые можно использовать под Solaris/FreeBSD. Примеры взяты из книги по dtrace
Если при компиляции php из исходников с поддержкой php-fpm вы получаете ошибку
cc: acomp failed for php-5.4.9/sapi/fpm/fpm/fpm.c
gmake: *** [sapi/fpm/fpm/fpm.lo] Error 1
то это известный баг https://bugs.php.net/bug.php?id=62708 решение которого довольно простое: в файле php-5.4.9/sapi/fpm/fpm/fpm_sockets.h меняем слово *sun на *s_un. Дело в том, что слово sun зарезервировано на Solaris-подобных ОСях.
При заполнении пула почти на 90% (вообще-то у всех по-разному: у кого-то и в 70%, а у кого-то только при 98%) Zfs начинает сильно притормаживать, точнее искать свободное место в пуле, куда-бы записать. Связано это с тем, что по умолчанию установлено слишком большое значение параметра metaslab_min_alloc_size.
Если вам критичен простой и вы не хотите разбираться с дампом при kernel panic, то можно облегчить себе жизнь, выставив авторебут при kernel panic. Вот как это делается в каждой из ОС.
Внимание
Перезагрузка после Kernel panic имеет и очень серьёзный недостаток, особенно если это изменение не пропадает после первой перезагрузки. В случае, если перезагрузка не устраняет ту ошибку, которая вызывает Kernel panic, система будет останавливаться и перезапускаться вновь и вновь, что может привести к аппаратным ошибкам или потерям данных
Ниже будет приведён скрипт, который позволяет перехватить удаление файла и вывести сообщение на консоль. При этом, на место блока /* INSERT HERE */ можно вставить свои обработчики, которые будут выполняться каждый раз, когда кто-то захочет удалить файл.
По умолчанию, при падении сервиса (и даже при kill -9) он автоматически поднимается через restarter. Бывают моменты, когда это нужно отключить. И так, выполняем такие действия (покажу на примере nginx’a)
#svccfg -s svc:/network/cswnginx:default
svc:/network/cswnginx:default> addpg startd framework
Если выругается, что группа уже есть, просто переходите к следующему пункту
svc:/network/cswnginx:default> setprop startd/duration = astring: transient
svc:/network/cswnginx:default> validate
Команда validate покажет, если есть какие-то ошибки. Если ничего не выдало, просто выходим через exit
Теперь применяем конфигурацию:
#svcadm refresh svc:/network/cswnginx:default
Если вдруг не сработало, тогда ещё сделайте disable/enable сервису.
Что бы включить обратно restarter – просто удалим то, что создали.