Смотри также
Когда навалом процессоров… Часть 1
Когда навалом процессоров… Часть 2
Когда навалом процессоров… Часть 3

Для улучшения производительности в многопроцессорных (в том числе Multithreading ) системах с ОС Solaris можно использовать выделенные процессоры для обработки прерываний устройств ввода-вывода. Это позволяем снизить количество переключений контекста для процессоров, увеличить попадания в кэш, в конечном счете отдать больше ресурсов для обработки пользовательских задач.

Solaris 10:

Для того, чтобы привязать процессор к обработке прерываний устройства:
1.  Определяем процессор, на который попадает большинство системных прерываний по данному адаптеру (например по сетевому адаптеру nxge):
Читать полностью »

Несколько скриптов-однострочников для быстрого взгляда на то, как используется память в 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 )
Обычно этим и ограничиваются все настройки ;) но попробуем заглянуть глубже.

Диски

Посмотреть диски:
Читать полностью »

По мотивам стандартной документации 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, список новых файлов в каталоге — удобно динамически формировать список и сравнивать его со старым списком.

Вдруг резк опросела производительность по операциям воода-вывода. С чего начать?
Ну, конечно, 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

Читать полностью »

Несколько полезных быстрых ссылок по Veritas Storage foundation от Symantec:

Найти и скачать последние патчи на продукты — Patch Central Beta

Центральный портал документации по продуктам Storage Foundation DocCentral

Быстрый переход на документацию по продектам Access product updates, security alerts, manuals and more with Enterprise Product Support.

Нормальные man-ы в html-виде:
Storage Foundation and High Availability 4.1 for Solaris Manual Pages

Storage Foundation and High Availability 5.0 for Solaris Manual Pages

Небольшой набор шаблонов и краткая инструкция по настройке jumpstart.
1. Установить install-server. Вставьте dvd или примонтируйте iso-шку
mkdir -p /opt/install_server/S10
cd /cdrom/cdrom0/Solaris_10/Tools/
./setup_install_server /opt/install_server/S10

2. Распакуйте шаблоны jumpstart в /opt/install_server
cp jumpstart myserver.profile
cd /opt/install_server
tar xf jumpstart.tar

Добавление клиентов на install-server:

3. Добавьте имя инсталлируемого сервера в /etc/hosts
echo '10.0.1.101 myserver' >> /etc/hosts
Читать полностью »

В продолжнение темы Solaris. Что делать, если отвалился дисковый массив? еще пара советов по подключению отвалившихся дисков. Итак, ситуация примерно такая:
# vxdisk list
DEVICE TYPE DISK GROUP STATUS
c1t0d0s2 sliced rootdisk rootdg online
...
fabric_0 sliced - - online
fabric_1 sliced - - online
- - datadg02 DG01 failed was:fabric_0
- - datadg03 DG01 failed was:fabric_1

1. Проще всего остановить все тома, депортировать и импортировать дисковую группу.

Но что делать, если часть дисков отвалилась, но некоторые тома еще живы (ну например, часть томов находится на зеркалах на другом массиве), и останавливать сервис нельзя?
Читать полностью »

Написал скриптик (точнее страничку), для определения слотов устройств ввода-вывода в Hi-End серверах Sun 12k,15k,20k,25k. Теперь достаточно скопировать строку из /devices или /etc/path_to_inst, чтобы определить где находится ваш HBA.