Monthly Archives: Апрель 2015

Предметная визуализация

Настройка доступной оперативной памяти в Linux Ubuntu для PostgreSQL

При добавлении оперативной памяти на сервере до 10 Гб, возникла необходимость, чтоб эта память реально использовалась Postgresql, т.к. по умолчанию использовалась только малая часть памяти.

Это делается таким образом:

echo 8589934592 >/proc/sys/kernel/shmall
echo 8589934592 >/proc/sys/kernel/shmmax

или в файле /etc/sysctl.conf прописываются строки:
kernel.shmall = 8589934592
kernel.shmmax = 8589934592

Так же, если у Вас много оперативной памяти, можно уменьшить использование виртуальной памяти. Для этого, допишите параметр:

vm.swappiness=10

swappiness имеет значение от 0 до 100 и представляет собой процент использования виртуальной памяти.

Для того, чтоб применить изменения, не забудьте выполнить команду:

sudo /sbin/sysctl -p

В данном случае, выделяется приложениям 8 Гб, остальная часть идет на нужны операуионной системы.

Полезные статьи по теме:

http://sysdba.org.ua/ustanovka/oracle/ustanovka-oracle-10g-redaktsii-express-i-enterprise-v-ubuntu-8.04.html


Источник: http://postgrestips.blogspot.com/

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Настройка shared memory

Вот такая ошибка может появлятся в логах Zoneminder’а:
 
WAR [Buffer overrun at index 31, image 902111, slow down capture, speed up analysis or increase ring buffer size]
Для оптимизации работы рекомендуется изменить значения shmmax и shmall в sysctl.conf.

Но какие значения ставить shmmax и shmall? Для этого сделан небольшой скрипт. Его задача – посчитать и вывести размер shared memory, который равен половине доступной на сервере памяти (всей доступной).

#!/bin/bash
# simple shmsetup script
page_size=getconf PAGE_SIZE
phys_pages=getconf _PHYS_PAGES
shmall=expr $phys_pages / 2
shmmax=expr $shmall \* $page_size
echo kernel.shmmax = $shmmax
echo kernel.shmall = $shmall

Например, для сервера с 2Гб RAM скрипт выдаст следующее:

kernel.shmmax = 1055092736
kernel.shmall = 257591

Здесь SHMMAX — максимальный размер (в байтах) на сегменте shared memory, установлен в 1 Гб. SHMALL – общее количество разделяемой памяти (в страницах), какое все процессы на сервере могут использовать. Количество байтов в странице зависит от операционной системы; в, основном, по умолчанию 4096 байт.

Для того, что бы эти данные применились для Linux, выполните данную команду от root (./shmsetup – данный скрипт):

./shmsetup >> /etc/sysctl.conf

И проверьте правильность:

sysctl -p

ЗЫ. Также не забываем про семафоры в системе:

$ ipcs -l

—— Пределы семафоров ——–
максимальное количество массивов = 128
максимум семафоров на массив = 250
максимум семафоров на всю систему = 32000
максимум операций на вызов семафора = 32
максимальное значение семафора = 32767

Значения в sysctl:

$ sysctl kernel.sem
kernel.sem = 250 32000 32 128

Все четыре значения, возможно, потребуется увеличить на системах с большим число процессов.

После установки и настройки Zoneminder’а сервер был загружен на 70-80%, а во время создания avi-файлов на все 100%. После изменения параметров shmmax и shmall нагрузка в нормальном режиме стала около 35%, а во время склейки изображений в avi ~80%.