Рубрика ‘Linux’

Анализ использования CPU SQL запросами в СУБД Oracle

Наткнулся на интересную статью по диагностике высокого потребления CPU запросами в СУБД Oracle. Рекомендую к прочтению.

Скачать (PDF, 277KB)

vagrant rsync

После обновления до последней версии vagrant и образа для ОС Debian 8 столкнулся с проблемой:

Проблема была в том, что у меня установлены cygwin64 и mingw64, но для первого не был установлен пакет openssh. В итоге при запуске виртуальной машины rsync из cygwin64 пытался использовать ssh из mingw64, а это не работает из-за не совместимости окружений. После установки пакета openssh для cygwin64 проблема ушла.

Отдельно есть проблема в самом vagrant 1.8, точнее используются не поддерживаемые ключи для ssh, необходимо обновить файл helpers.rb, подробнее в описании ошибки.

Конфигурационный файл для nginx + passenger 5 + puppetmaster

Пример конфигурационного файла для nginx + passenger 5 для работы puppet master сервера.

 

Шпаргалка по PDB

Возможно кому-то пригодится, шпаргалка по командам PDB.

Скачать (PDF, 171KB)

Источник файла по ссылке.

ansible_ru@slack

Появился канал ansible_ru в мессенджере slack, попасть в него можно пройдя регистрацию по ссылке (если у вас еще нет учетной записи в slack) – http://signup.hangops.com/

Далее в списке каналов выбрать канал ansible_ru, или можно перейти по ссылке.

Ansible extra vars без файла inventory

Данной заметкой начну цикл по системе Ansible.

Сегодня выяснилась прелюбопытная особенность, а именно:

Если выполнить команду указанную выше без файла инвентаря (или если он будет пустой), то ansible просто проигнорирует все параметры переданные при помощи ключа -e.

В итоге может сложиться ситуация, когда у вас какой-то docker контейнер работает на порту 2200, вы думаете что playbook отрабатывает на нем, но по факту это не так. Все изменения происходят на host машине, что может привести к совсем неожиданным последствиям.

Данное поведение всплыло при разборе ошибки по ссылке.

Архитектура Nginx

Вопросом вынесенным в заголовок я занимался давно, но может кому-то поможет для общего развития. По ссылкам ниже можно подробно и наглядно прочитать про архитектуру web сервера Nginx, его логику обработки запросов, чем она отличается от логики работы стандартных модулей для Apache prefork и worker.

Почему данная модель позволяет ему обрабатывать многие сотни тысяч запросов в секунду и т.д.

Ссылка 1

Ссылка 2

На память себе оставлю пару картинок, позволяют просто запомнить что происходит в запросом внутри Nginx. Помещу их внутрь записи.

Читать полностью ‘Архитектура Nginx’ »

Автоудаление старых архивов для mylvmbackup

Для реализации резервного копирования СУБД MySQL при помощи LVM есть отличный инструмент – mylvmbackup. Но в нем есть один недостаток – это “из коробки” не реализован механизм автоудаления старых архивов, решил это поправить, в связи с чем в 2012 году родился hook который отрабатывает после успешного создания резервной копии и удаляет все старые архивы, но оставляет, указанное в настройках, количество недавно созданных.

Для ОС Ubuntu или Debian копируем файл в папку /usr/share/mylvmbackup и даем ему права на исполнение.

Код ниже:

Bridge и iptables

Для корректной настройки работы bridge в linux необходимо обязательно прописывать в sysctl следующие параметры:

Данные параметры отвечают за обработку сетевого трафика бриджа тем или иным ПО для контроля трафика. Есть несколько проблем с этим, для примера sysctl при загрузке выполняется в тот момент, когда еще не создался bridge и в итоге параметры не применяются и приходится выполнять sysctl -p в ручном режиме или через cron.

Более подробно можно почитать по ссылке.

ZBX_TCP_READ() failed: [4] Interrupted system call

Столкнулся с проблемой, после добавления 2-х нод на базе Centos 6 в систему мониторинга zabbix значительно выросли значения для zabbix busy poller и zabbix busy unreachable poller статистик. Для примера график:

zabbix_poller

Включив DebugLevel=4 на сервере увидел в логах ошибки:

При этом судя по дампу сетевого трафика zabbix агент просто не успевал ответить за 20 секунд, а это значение выставлено у меня в timeout. При этом запросы простейшие, такой ситуации просто не должно возникать.

Подозрение пало на проблемы в работе DNS серверов, либо какой-то внутренний баг в zabbix agent. При проверке выяснилось, что DNS сервера работают нормально, отвечают быстро, но проблема была решена добавлением записи со ссылкой на zabbix server в /etc/hosts.

Как альтернативу можно использовать вариант с заменой FQDN имени Zabbix сервера в конфигурационном файле агента на IP.

По факту у хостера видимо какое-то ограничение на количество запросов от клиента на получение IP для одного и того же домена. При этом сам zabbix агент делает тонну DNS запросов, по сути на каждый запрос на получение данных с него. Ждем когда закроют этот тикет, с 2011 года не закрыт.