Здесь будет рассказано о разных типах памяти, в разных ОС, при использовании разных диагностических утилит.
MEM – mysql enterprice monitor. Это такая веб-админка, где можно посмотреть за работой базы mysql и понять, почему она тормозит или посмотреть другую статистику. По большому счёту это приложение на java, которое выгребает статистику из баз perfomance scheme и information scheme и предоставляют её в удобном виде. Так же, время от времени парсится и вывод show engine innodb status на предмет полезной информации.
[nginx] FastCGI + keepalive
Вроде бы всё просто, но есть небольшой хак: вот такая конструкция не будет поддерживать keepalive:
location / {
...
fastcgi_pass 127.0.0.1:9000;
fastcgi_keep_conn on;
...
}
[Solaris] zfs_params
Ниже будут перечислены используемые параметры для тюнинга ZFS.
Для тех, кто решил обновится с 5.6 на 5.7 ждут “сюрпризы” в виде переработанного оптимизатора запросов. Что такое оптимизатор? Это “помощник”, который перед каждым выполнением запросов ищет путь “наилучшего” выполнения запроса. Все есть больше 10-ка различных параметров оптимизатора, которые можно включать/выключать, тем самым меняя логику исполнения запросов. Подробнее о них можно прочесть здесь.
Запрет удаления файлов в Solaris
Вот такая нехитрая задача возникающая перед администраторами: писать можно, удалять нельзя и всё это ограничение применить только к конкретному пользователю. Решается она просто: через ACL. Причём нужно иметь ввиду, что бы запретить удаление, нужно явно это указать (если у пользователя отсутствуют явные запреты, то он всё равно сможет их “нарушить”).
Стандартные права выглядят так: rwxpdDaARWcCos, где буквы dD означают разрешение на удаление (d – удаление файла, D – удаление файла или папки внутри директории).
Предположим, вам надо запустить сервис не от root’a и при этом, создать файл (например, сокет или pid) в системной папке /var/run от этого юзера. Правильный Solaris-way следующий:
Создаём группу
# svccfg -s svc:/network/test1234 addpg method_context framework
Выставляем необходимого юзера и группу
# svccfg -s svc:/network/test1234 setprop 'method_context/user = astring: "webservd"'
# svccfg -s svc:/network/test1234 setprop 'method_context/group = astring: "webservd"'
Solaris и файл hosts
По умолчанию файл /etc/hosts в Solaris отсутствует. Но это совсем не означает, что он пуст! В Solaris он располагается по другому пути – /etc/inet/hosts (это можно увидеть, натравив, например, truss на nscd и он сразу покажет, какие файлы запрашивает). И так, правильный выход из ситуации – сделать симлинк /etc/hosts на файл /etc/inet/hosts. Именно так, и не иначе. В противном случае, после апдейта, могут быть конфликты или ссылка затрётся.
Быстрые диалоговые окна
1) Zenity
Zenity — утилита, которая позволяет выводить на экран диалоговые окна GTK+ из командной строки и скриптов командной оболочки. Zenity это переписанная версия программы gdialog, которая в свою очередь является адаптацией программы dialog для среды GNOME.
Официальный сайт https://help.gnome.org/users/zenity/stable/
2) Yet Another Dialog (YAD)
YAD (yet another dialog) is a tool for create graphical dialogs from shell scripts
Официальный сайт https://sourceforge.net/projects/yad-dialog/
Здесь буду писать о разного рода не стандартных ограничениях и как их решать.
1) Ограничение по user-agent’y:
nginx.conf:
http { ... map $http_user_agent $limit_bots { default ''; ~*(yandex|msnbot|yahoo) $binary_remote_addr; } limit_req_zone $limit_bots zone=bots:10m rate=40r/m; ... }
vhost.conf: