Когда навалом процессоров… Часть 2
20.11.2009
Смотри также
Когда навалом процессоров… Часть 1
Когда навалом процессоров… Часть 2
Когда навалом процессоров… Часть 3
Если процессоров не так прямо уж и много, или сервер состоит из системных плат, объединенных через общую шину (типа sf4800, sf6900, e25k итд) — то можно пойти другим путем — привязать процессы к процессорному сэту и запретить прерывания для этого сэта. Тем самым повышаем попадания в кэш, уменьшится трафик между системными платами, можно выделить как бы гарантированный квант процессорных ресурсов приложению.
Итак, пусть у нас средняя железка, 24 процессора. Создадим
процессорный сэт из процессоров 0-7
Читать полностью »
WordPress Plugin. Comments with OpenId
16.11.2009
Aviable version 1.4 (update 2010.04.05)
[Русский] [English]
Настроил тут возможность писать комментсы с openId. Поставил вначале Third Party Accounts Login — типа все заработало. Хотел добавить туда еще Яндекс-id, ан нет — там пишется в табличку, затем из таблички выбирается, вообщем решил переписать по простому (без настроек, без базы данных, без больших картинок, без жаба-скриптов на 100кб). Итак, встречайте — «Comments with OpenId». Подставляет в строку авторизации openId строки для таких провайдеров как yandex, google, livejournal, blogger, flickr, myopenid, claimid. Посмотреть, как это работает можно в комментсах к данному посту ;)
Читать полностью »
Когда навалом процессоров… Часть 1
13.11.2009
Смотри также
Когда навалом процессоров… Часть 1
Когда навалом процессоров… Часть 2
Когда навалом процессоров… Часть 3
Для улучшения производительности в многопроцессорных (в том числе Multithreading ) системах с ОС Solaris можно использовать выделенные процессоры для обработки прерываний устройств ввода-вывода. Это позволяем снизить количество переключений контекста для процессоров, увеличить попадания в кэш, в конечном счете отдать больше ресурсов для обработки пользовательских задач.
Solaris 10:
Для того, чтобы привязать процессор к обработке прерываний устройства:
1. Определяем процессор, на который попадает большинство системных прерываний по данному адаптеру (например по сетевому адаптеру nxge):
Читать полностью »
ShadowImage и ошибки
02.11.2009
Софт Hitachi ShadowImage свои ошибки в log-файле не расшифровывает, поэтому, чтобы определить, что же за проблемы у нас возникли открываем лог (обычно он находится где-то тут /HORCM/log0/curlog/horcmlog_`hostname`/horcm.log )
и ищем там вот такую строчку:
16:26:26-15981-99999- SSB = 0xb9a0,232a.
Вот 232a — это и есть код нашей ошибки. Ну а расшифровку можно взять из секции troubleshooting в ShadowImage User’s Guide или из нижеприведенной таблички:
Читать полностью »
Есть такой инструмент — PAR Packager , и сделать exe-шник с его помощью проще простого:
C:\ pp -o filename.exe filename.pl
Не помню, входит ли утилитка в состав ActivePerl. Если что — запускаете ppm из командной строки и устанавливаете PAR. Для любителей рисовать окошки из perl — есть логичное продолжение — tkpp. Недостаток конечно есть — размер exe-шника, да и скорость выполнения — будет точно такой же, как и у perl-скрипта.
Что еще можно использовать?
1. Когда-то, для этого же я использовал perl2exe от IndigoStar. Но так как это коммерческий продукт, то по окончании программа выплевывала строчку о том, что это «незарегистрированная версия». К тому же, как отмечают продвинутые камрады — достаточно просто раскомпилировать обратно и получить исходники.
2. Есть такая утилитка — perlcc. Генерирует исходник на C, который можно потом собрать с помощью компилятора. К сожалению, существует не для всех версий perl — последняя версия 5.8.9 (я когда-то пробовал этот путь, но что-то там получалось не очень весело, типа компилировалось только с VisualStudio , плюс еще какой-то геморой с либами, может быть сейчас что-то и изменилось). Но с точки зрения размера выполняемого файла — без вариантов ;)
ЗЫ — только что попробовал скомпилить скриптик в 2 строки под Solaris — компилится, но при выполнении падает в корку ;(, так что ситуация далека от идеала.
Сколько же памяти занимает ядро?
28.09.2009
Несколько скриптов-однострочников для быстрого взгляда на то, как используется память в Solaris:
Физическая память:
kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /physmem/ { print "Physical memory = " $2 * pgsize/1073741824 "Gb"}'
Память ядра:
kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /pp_kernel/ { print "Kernel memory = " $2 * pgsize/1073741824 "Gb"}'
Разделяемая (shared) память:
ipcs -mb | awk '/^m/ {sm=sm+$7}END{ print "Shared memory " sm/1073741824 "Gb"}'
Свободная память:
kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /freemem/ { print "Free memory = " $2 * pgsize/1073741824 "Gb"}'
И еще, если присмотреться, то можно увидеть, как в awk можно выполнить команду shell и прочитать ее вывод ;)
Updated: 29.09.2009/Добавлен однострочник для свободной памяти. Вообщем-то получился не плохой скриптик — все однострочники в одном файле:
solarismem
Пример вывода:
# ./solarismem.sh
Physical memory = 31.2031Gb
Kernel memory = 3.29826Gb
Shared memory 12.9697Gb
Free memory = 13.5944Gb
До Solaris10 управлять мультипатингом MPxIO можно было только с помощью luxadm, да и то, очень ограничено.
В Solaris 10 появилась командочка mpathadm, которая позволяет облагородить этот процесс,
не танцевать с бубном, а нормально админить ;)
Итак, вспоминаем — включение MPxIO на весь сервер:
stmsboot -e ; reboot
Можно включить на некоторые порты итд ( man stmsboot )
Обычно этим и ограничиваются все настройки ;) но попробуем заглянуть глубже.
Диски
Посмотреть диски:
Читать полностью »
Снова perl. Немного о встроенных переменных
25.08.2009
По мотивам стандартной документации Perlvar.
Считать целиком файл в переменную:
open (MOCK, $filename) or die "$!";
local $/;
# переопределяем встроенную переменную "разделитель строк" ($/ или $INPUT_RECORD_SEPARATOR или $RS)
$_ =<MOCK> ; # захавать моск файл целиком
close (MOCK);
Напечатать содержимое массива:
@a=qw( 1 2fewf wf g ag f);
local $,="\n";
# переопределяем встроенную переменную "разделитель полей" ($, или $OUTPUT_FIELD_SEPARATOR или $OFS)
print @a;
Читать полностью »
И снова grep
05.08.2009
Иногда есть данные и шаблоны, и чтобы выбрать данные — обычно используют цикл, в котором грепают по шаблону. Но тут недавно внимательно перечитал man grep и нашел интересный момент ;) Можно в одну команду вывести список строк, которые попадают (или не попадают) под шаблон
cat data.txt
111
222
333
112
122
233
444
cat template.txt
2
1
/usr/xpg4/bin/grep -f template.txt data.txt
111
222
112
122
233
Или не попадают
/usr/xpg4/bin/grep -v -f template.txt data.txt
333
444
Для чего это можно использовать? Ну например, список новых томов в VxVM, список новых файлов в каталоге — удобно динамически формировать список и сравнивать его со старым списком.
Самые загруженные тома в vxvm
23.07.2009
Вдруг резк опросела производительность по операциям воода-вывода. С чего начать?
Ну, конечно, iostat (смотри также Перегретый диск в vxvm). Получили диск, или диски, а если используется vxvm — тогда лучше воспользоваться vxstat:
1. выбираем наиболее загруженные диски
# vxstat -g DG01 -i 10 -c 3 -d
OPERATIONS BLOCKS AVG TIME(ms)
TYP NAME READ WRITE READ WRITE READ WRITE
dm array_raid1_08_1 6 260 96 5664 10.0 64.3
dm array_raid1_10_2 7 205 112 5296 12.9 68.7
dm array_raid1_10_3 6 1199 96 15408 18.3 163.6
dm array_raid1_10_4 7 178 112 5312 12.9 39.0
...
dm array_raid5_06_1 9 33 132 524 8.9 8.2
dm array_raid5_07_1 2 58 32 1120 5.0 11.6
Читать полностью »