среда, 26 ноября 2014 г.

Solaris :: Корректируем timezonedb в PHP


Последний раз, я думал, что править в PHP timezone мне придется только в 2012 году. Однако, на самом деле реалии оказались более жесткими. 
В октябре 2014 года в РФ время в очередной раз передвинули на GMT+3, и пришлось вспоминать как исправлялась база часовых поясов в далеком 2012 году. Следует отметить, что многие дистрибутивы Linux содержат сборку PHP с привязкой к OS TZ и там, при своевременном апдейте системной базы часовых поясов этой проблемы не возникает. Так же во многих дистрибутивах можно просто собрать необходимую, обновленную, базу через стандартный pecl механизм в PHP:
     pecl install timezonedb
но в нашем случае это не принесло желаемого результата из-за множественных ошибок вызванных неординарной настройкой в системе.

четверг, 23 октября 2014 г.

Анализ crashdump в OS Solaris. Ищем виновника причины. #1

Причина поиска

Итак, у нас внезапно перезагрузился сервер. После подъёма, вы посмотрели в /var/crash/ и увидели там свежий vmdump.0.
Поздравляю! Вы стали свидетелем краха ядра ОС Solaris и теперь пытаетесь выяснить причину, хотя бы косвенную, этого падения.
Для начала нам надо распаковать crashdump в /var/crash/vmdump.0 в стандартную пару для анализа unix.0 и vmcore.0, позволю себе напомнить, что unix.0 — это дамп ядра системы, а vmcore.0 — это дамп памяти и в анализе причины падения эти файлы участвуют совместно.
/usr/bin/savecore -vf /var/crash/vmdump.0
Загружаем пару дампов, системы и памяти, в отладчик и пытаемся посмотреть причину падения:
/usr/bin/mdb -k /var/crash/{unix,vmcore}.0
Теперь просто даем команду в отладчике:
::status
и в большинстве случаев – этого достаточно, ровно как и
file /var/crash/{unix,vmcore}.0
чтобы понять причину падения. Однако, в этот раз вам не повезло и вы видите, что падение вызвано непонятной записью:
panic message: BAD TRAP: type=31 rp=2a102fb0db0 addr=6fffedd6b4b mmu_fsr=0
dump content: kernel pages only

среда, 16 июля 2014 г.

Добавление шрифта DOS CP866 в Linux для использования с xterm

Цель

Для многих не понятно, зачем использовать терминальный шрифт, да еще с кодировкой CP866/IBM866 в современных Linux станциях, когда UTF8 достаточно. Но, так сложилось исторически, что есть БД с кодировкой в CP866 и терминальным подключением к серверу. Поэтому использование CP866 - сложившийся факт.

Однако, существует проблема с отображением русской кодировки, если установлена на рабочей станции локаль UTF8. Решение данной проблемы будет рассмотрено ниже.


четверг, 23 января 2014 г.

Решаем проблему подвисания модема E353 в Linux RH Enterprise

   Данный модем был подключен к серверу с ОС Oracle Linux Server release 6.2 с целью рассылки SMS оповещений от системы мониторинга Zabbix через SMS Server Tools. К сожалению, это решение из-за частых отказов USB модема Huawei Technologies E353 не может пока претендовать на роль гарантированного оповещателя, но тем не менее можно постараться приладить костыли из самого Zabbix и делать реинициализацию им.

среда, 22 января 2014 г.

Анализ использования памяти :: Solaris swap

Эта статья является копией моей статьи из локальной WIKI организации. Статья была написана при разборе и анализе проблем потребления swap-раздела системой на сервере. В большей степени, данная статья, является компиляцией из различных источников методов и определений, хотя и писана своими словами

Общее определение SWAP

SWAP - определяет один из механизмов виртуальной памяти, позволяющей осуществлять перемещение неактивных фрагментов RAM, называемых страницами памяти, на внешний носитель, обычно жёсткий диск, для освобождения RAM под исполняемые участки кода. Когда код страницы памяти размещенный на SWAP будет востребован разместившей его в RAM программой, то произойдет обратное перемещение его с внешнего носителя в свободную область RAM. Такой процесс, обычно, называют свопингом.
По своей природе SWAP может являться как файлом (swap-file), так и быть RAW разделом внешнего носителя (swap-partition).