Oracle Solaris

Материал из PersonallWiki
Перейти к: навигация, поиск

Настройка Solaris 11[править]

Требования к серверу.

Определяем архитектуру сервера:

/bin/isainfo –kv
64-bit amd64 kernel modules -> x86
64-bit sparcv9 kernel modules -> SPARC


Определяем размер RAM:

/usr/sbin/prtconf | grep "Memory size"

Рекомендуемый размер RAM : от 4 GB и выше


Определяем размер swap:

swap -lh
swapfile                   dev    swaplo   blocks     free
/dev/zvol/dsk/rpool/swap 285,1        4K     1.0G     1.0G

Если RAM от 4 до 16GB то swap равен RAM Если RAM больше 16GB то swap равен 16GB

(Не забываем про DISM, если будем использовать AMM или ASMM, то swap равен размеру SGA)


Увеличить размер swap можно так:

zfs set volsize=20G rpool/swap



Требования к ПО Oracle Solaris 11 SPARC


Должны быть установлены следующие обновления Oracle Solaris 11:

Oracle Solaris 11 SRU 7.5 or later SRUs and updates (for Oracle database 12.1.0.1.0)
Oracle Solaris 11 SRU 14.5 or later SRUs and updates (for Oracle database 12.1.0.2.0)


Минимально необходимые пакеты согласно Note 1525614.1 for Oracle Solaris 11:

pkg://system/dtrace
pkg://solaris/developer/assembler
pkg://solaris/developer/build/make
pkg://solaris/system/xopen/xcu4 package (if not already installed as part of the standard Oracle Solaris 11 installation)
pkg://solaris/x11/diagnostic/x11-info-clients
pkg://solaris/compress/unzip
pkg://solaris/system/kernel/oracka (For Oracle RAC only)


Проверяем репозиторий:

root@solaris11:~# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://pkg.oracle.com/solaris/release/

пакеты устанавливаются так:

pkg install 
pkg install pkg://system/dtrace


Устанавливаем:

pkg install pkg://solaris/system/dtrace
pkg install pkg://solaris/developer/assembler
pkg install pkg://solaris/developer/build/make
pkg install pkg://solaris/system/xopen/xcu4
pkg install pkg://solaris/x11/diagnostic/x11-info-clients
pkg install pkg://solaris/compress/unzip
pkg install pkg://solaris/system/kernel/oracka


Устанавливаем GUI библиотеки для запуска ораклового инсталятора согласно Note 1401800.1

pkg install pkg:/group/system/solaris-large-server
pkg install pkg:/group/system/solaris-desktop


Дополнительно можно установить:

pkg install pkg:/group/prerequisite/oracle/oracle-rdbms-server-12-1-preinstall


Проверяем установленные пакеты:

pkg info -r SUNWdtrc
pkg info consolidation/osnet/osnet-incorporation /x11/diagnostic/x11-info-clients /developer/build/make system/xopen/xcu4 | egrep -i 'Name|installed'

- Для Grid Infrsatructure

pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibm SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt SUNWcsl

- Для RAC - Bug:14046807

pkginfo -i SUNWxcu4

- Для Database

pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt

Compiler Requirements Oracle Solaris Studio 12 (C and C++ 5.9) is supported with Pro*C/C++, Oracle Call Interface, Oracle C++ Call Interface, and Oracle XML Developer's Kit (XDK) for Oracle Database 11g Release 2.

Настройка параметров ядра ОС:


Проверка параметров сетевого стека:

/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000
/usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500
/usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000
/usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500

Добавить следующие строки в файл '/etc/inittab':

tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 9000 > /dev/console
tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_largest_anon_port 65500 > /dev/console
tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000 > /dev/console
tm::sysinit:/usr/sbin/ndd -set /dev/udp udp_largest_anon_port 65500 > /dev/console


Настройка параметров Shared Memory:


Просмотр существующих проджектов:
projects -l


Создаём новые проджекты:

Например, для RAM SIZE = 64Gb = 68719476736 Bytes

для root

projadd -U root user.root projmod -sK "project.max-shm-memory=(priv,64gb,deny)" user.root
projmod -sK "project.max-shm-ids=(priv,128,deny)" user.root
projmod -sK "project.max-sem-nsems=(priv,1024,deny)" user.root
projmod -sK "project.max-sem-ids=(priv,1024,deny)" user.root
projmod -sK "process.max-file-descriptor=(priv,65536,deny)" user.root
projmod -sK "process.max-stack-size=(priv,32MB,deny)" user.root


для oracle

projadd -U oracle user.oracle projmod -sK "project.max-shm-memory=(priv,64gb,deny)" user.oracle
projmod -sK "project.max-shm-ids=(priv,128,deny)" user.oracle
projmod -sK "project.max-sem-nsems=(priv,1024,deny)" user.oracle
projmod -sK "project.max-sem-ids=(priv,1024,deny)" user.oracle
projmod -sK "process.max-file-descriptor=(priv,65536,deny)" user.oracle
projmod -sK "process.max-stack-size=(priv,32MB,deny)" user.oracle


Проверяем:

more /etc/project
more /etc/user_attr


Добавить в /etc/system следующие параметры:

set shmsys:shminfo_shmmax=68719476736
set shmsys:shminfo_shmmni=128
set semsys:seminfo_semmsl=1024
set semsys:seminfo_semmni=1024
set max_nprocs=30000
set maxuprc=16384
set rlim_fd_max=65536
set rlim_fd_cur=16384

Reboot Server

# /usr/sbin/shutdown -y -i6 -g0


Проверяем:

# cat /etc/project
# cat /etc/system
# projects -l
# /usr/sbin/sysdef
# prctl -i project
# prctl -n project.max-shm-memory -i project user.root
# prctl -n project.max-shm-memory -i project user.oracle


Снятие ограничения Shell limits.

# su - root

Смотрим текущие значения:

# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 65536 or unlimited
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 16384 or unlimited
virtual memory (kbytes, -v) unlimited


ulimit -t unlimited
ulimit -f unlimited
ulimit -d unlimited
ulimit -s unlimited
ulimit -v unlimited


# su - oracle

Смотрим текущие значения:

# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 65536 or unlimited
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 16384 or unlimited
virtual memory (kbytes, -v) unlimited


Устанавливаем новые значения:

ulimit -t unlimited
ulimit -f unlimited
ulimit -d unlimited
ulimit -s unlimited
ulimit -v unlimited



Рекомендуемые настройки NTP:

vi /etc/sysconfig/ntpd 
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"


Перезапустить xntpd:

su - root
/usr/sbin/svcadm disable ntp
/usr/sbin/svcadm enable ntp
/usr/sbin/svcadm restart ntp


vi /etc/inet/ntp.conf
slewalways yes
disable pll

Перезапустить xntpd:

su - root
/usr/sbin/svcadm restart ntp



Настройка SSH:

В файл /etc/ssh/sshd_config добавить параметр : LoginGraceTime 0

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
LoginGraceTime 0


Отключить Firewall:

su - root

/usr/sbin/svcadm disable ipfilter


Настойка профайла пользователя oracle

# vi .bashrc
- or -
# vi .profile
##################################################
# Setup Oracle standard env
##################################################
export ORACLE_SID=TESTDB export ORACLE_BASE=/path/to/oracle/base
export PATH=$PATH:/usr/local/bin
ORAENV_ASK=NO
. /usr/local/bin/oraenv > /dev/null 2>&1
ORAENV_ASK=YES
##################################################
# Setup Oracle extended env
##################################################
#export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 
export NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS
export LIBPATH=$ORACLE_HOME/lib:/usr/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/bin:$PATH
umask 022
unset TMOUT
if [ `uname` = "SunOS" ]; then
export AWT_TOOLKIT=XToolkit
# Preventing Installation Errors Caused by Terminal Output Commands
if [ -t 0 ]; then
stty intr ^C
fi
fi

Оригинал статьи: http://gorodovets.blogspot.com/2009/04/solaris-creating-custom-solaris-8.html



+


Как проверить и проанализировать использование памяти в системе Solaris[править]

Системное администрирование Из песочницы Очень часто господа системные администраторы сталкиваются с проблемой просмотра загрузки операционной системы, и если большинству в общем то знакомы системы мониторинга на стандартных операционных системах, то в системе Solaris — это часто вызывает много вопросов и сомнений, особенно в выводах команд пугающих своими цифрами. Сегодня попробуем немного в этом разобраться.

Первоначально нас интересует три вопроса, рассмотрим их по порядку:

1. Что влияет на производительность системы? Память Процессор Диск Сеть

2. Общие случаи возникновения проблем с производительностью Недостаточные нагрузочные тесты производительности приводит к нерасчитанным нагрузкам на существующую систему Появление недостатка системных ресурсов в результате увеличения нагрузки на существующее приложение Проблемы программно-аппаратного комплекса

3. Какие концепции используются во время сбора данных? Обязательно иметь два вида данных, первый собранный в момент когда система испытвает критические нагрузки, второй во время стабильного функционирования системы.

4. Ну и наконец какие же у нас есть средства в нашей системе, и за что они отвечают?

vmstat — память, процессор, I/O
mpstat — CPU
iostat — I/O
netstat — сеть
lockstat — системные вызовы, блокировки
sar — утилита многоплановая, все зависит от опций
и другие.

Постараюсь постепенно рассказать об этих и некоторых других утилитах, варианты выводов, и чтение этих выводов. Начнем с самого необходимого, анализирование использования оперативной памяти. Анализируем использование памяти: первое, нам необходимо узнать сколько памяти занимается ядром, а сколько пользователем, от этого будет зависить наши последующие шаги:

root@T1000-spare # echo "::memstat" | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 54267 423 5%
Anon 25457 198 3%
Exec and libs 4346 33 0%
Page cache 9650 75 1%
Free (cachelist) 10775 84 1%
Free (freelist) 908455 7097 90%
Total 1012950 7913
Physical 1007634 7872

Использование памяти пользователя: показывает процессы использующие память больше всего

root@T1000-spare # prstat -s rss
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 
1238 noaccess 155M 117M sleep 59 0 0:01:01 0.0% java/18
662 root 18M 15M sleep 59 0 0:00:05 0.0% fmd/26
7 root 16M 13M sleep 59 0 0:00:09 0.0% svc.startd/12
9 root 12M 11M sleep 59 0 0:00:34 0.0% svc.configd/17
697 root 10M 8304K sleep 59 0 0:00:00 0.0% snmpd/1
489 root 50M 8048K sleep 59 0 0:00:00 0.0% gdm-binary/1
446 root 9744K 6352K sleep 59 0 0:00:01 0.0% inetd/4
1773 root 7464K 6152K sleep 59 0 0:00:00 0.0% sshd/1
184 root 6704K 4728K sleep 59 0 0:00:00 0.0% nscd/31
187 root 5536K 4720K sleep 59 0 0:00:00 0.0% picld/9
1772 root 5680K 4312K sleep 59 0 0:00:00 0.0% sshd/1
667 root 9608K 4184K sleep 59 0 0:00:00 0.0% sendmail/1
142 root 6832K 3784K sleep 59 0 0:00:00 0.0% syseventd/15
664 smmsp 9672K 3744K sleep 59 0 0:00:00 0.0% sendmail/1
202 daemon 4984K 3728K sleep 59 0 0:00:00 0.0% kcfd/5
2019 oracle 3880K 3600K cpu17 59 0 0:00:00 0.0% prstat/1

================================================== Следующая команда показывает вывод общей памяти и «семафоров»:

root@T1000-spare # ipcs -a (к сожалению данный сервер тестовый и только-только поднятый, нагрузку продемонстироровать не смогу)

Следующая команда продемонстрирует нам использование пользовательской памяти всеми процессами, исключая (PID 0,2,3):

root@T1000-spare # egrep "[0-9]:|^total" /var/tmp/pmap-x
1: /sbin/init
total Kb 3024 2712 312 -
1112: /usr/dt/bin/dtlogin -daemon
total Kb 6576 4536 304 -
1238: /usr/java/bin/java -server -Xmx128m -XX:+UseParallelGC -XX:ParallelGCT
total Kb 158552 120040 103304 -
142: /usr/lib/sysevent/syseventd
total Kb 6832 5832 1096 -
146: /usr/lib/ldoms/drd
total Kb 2600 2320 408 -
1539: /home/OracleDB/11.2/ccr/bin/nmz -cron -silent
total Kb 3936 3152 264 -
1772: /usr/lib/ssh/sshd
total Kb 5680 5352 728 -
1773: /usr/lib/ssh/sshd
total Kb 7464 6928 408 -

================================================== Следующим шагом будет проверка использования файловой системы /tmp:

root@T1000-spare # df -kl /tmp/
Filesystem kbytes used avail capacity Mounted on
swap 14380920 104 14380816 1% /tmp

==================================================

root@T1000-spare # du -akd /tmp | sort -n | tail -5 — а эта команда отобразит 5 файлов большого размера внутри данной файловой системы.

Общее использование памяти в системе:

root@T1000-spare # vmstat -p 3
memory page executable anonymous filesystem 
swap free re mf fr de sr epi epo epf api apo apf fpi fpo fpf
14314224 7375848 26 67 1 0 13 23 0 0 0 0 0 40 1 1
14381608 7361752 3 6 0 0 0 0 0 0 0 0 0 0 0 0
14381288 7361616 0 0 0 0 0 0 0 0 0 0 0 0 0 0

================================================== Данная команда будет отображать информацию раз в три секунды. Конечно же необходимо проверить использование SWAP системой:

root@T1000-spare # swap -s
total: 193424k bytes allocated + 47176k reserved = 240600k used, 14381936k available
root@T1000-spare # swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 32,9 16 16387600 16387600

================================================== В данном разделе финальной комнадой будет проверка статистики ядра: очень хорошая утилита kstat, имеет большое разнообразие дополнительных ключей, также можно использовать команду которую я указал ниже

root@T1000-spare # echo "::kmastat"| mdb -k > /var/tmp/kmastat
root@T1000-spare # more /var/tmp/kmastat 
cache buf buf buf memory alloc alloc 
name size in use total in use succeed fail 
------------------------- ------ ------ ------ --------- --------- ----- 
kmem_magazine_1 16 1161 1524 24576 1161 0 
kmem_magazine_3 32 2184 2540 81920 2805 0 
kmem_magazine_7 64 1730 2413 155648 3043 0 
kmem_magazine_15 128 2701 2772 360448 3401 0 
kmem_magazine_31 256 337 341 90112 337 0 
kmem_magazine_47 384 0 0 0 0 0 

В данной таблице нужно смотреть на столбец «memory in use» и на любую строку в которой «alloc fail» больше нуля. Ну я думаю для одной статьи пока достаточно, не хочется нагружать Вас большим полотном текста надеюсь вскоре смогу продолжить свой обзор по наблюдению за питомцами на солярисе.

Оригинал: https://habr.com/ru/post/124208/