Показаны сообщения с ярлыком оптимизация. Показать все сообщения
Показаны сообщения с ярлыком оптимизация. Показать все сообщения

вторник, 18 июля 2017 г.

Оптимизация postgresql 9.6.3

Настройка shared memory
What's new in PostgreSQL 9.3
Работа с PostgreSQL: настройка и масштабирование
Документация к PostgreSQL 9.6.3
Немного о конфигурировании PostgreSQL
СУБД для 1С Fresh. Быстро. Надежно. Бесплатно


"In 9.3, PostgreSQL has switched from using SysV shared memory to using Posix shared memory and mmap for memory management. This allows easier installation and configuration of PostgreSQL, and means that except in unusual cases, system parameters such as SHMMAX and SHMALL no longer need to be adjusted. We need users to rigorously test and ensure that no memory management issues have been introduced by the change."

nano /etc/postgresql/9.6/main/postgresql.conf
Проверить:
dynamic_shared_memory_type = posix

Таким образом SHMMAX and SHMALL не настраиваем!

Оптимизация производительности PostgreSQL
Настройки PostgreSQL для работы с 1С:Предприятием. Часть 2
Лучшие практики от gilev.ru
Configuration calculator for PostgreSQL
Полезные запросы:

Пример для виртуальной машины 8 Гб - 1/2  4 Гб отдадим postgresql


# nano /etc/postgresql/9.6/main/postgresql.conf 
 
# DB Version: 9.6
# OS Type: linux
# DB Type: oltp
# Total Memory (RAM): 4 GB
# Number of Connections: 20

max_connections = 20
shared_buffers = 1GB
effective_cache_size = 3GB
work_mem = 52428kB
maintenance_work_mem = 256MB
min_wal_size = 2GB
max_wal_size = 4GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
  
PostgreSQL - реальная альтернатива для высоконагруженных систем на базе 1С 
 
!!!# nano /etc/postgresql/9.6/main/postgresql.conf

ssl = false
autovacuum = on
autovacuum_max_workers =4
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.05
online_analyze.enable = on
fsync = on
synchronous_commit = off
 
Сохранить 
!!! # reboot
# service postgresql restart
 
Тест Гилёва 

Особенности использования теста на субд PostgreSQL
Установите значение параметра standard_conforming_strings в конфигурационном файле postgresql.conf в значение ‘off’

# nano /etc/postgresql/9.6/main/postgresql.conf
standard_conforming_strings = off 


PgConf.Russia 2017

вторник, 18 апреля 2017 г.

Установка postgresql 9.6.2 на ubuntu 16.04.2 lxc

Клонировать контейнер
# lxc-clone -o xenial_lxc -n xp962_lxc

Проверить:
# nano /var/lib/lxc/xp962_lxc/rootfs/etc/hosts
127.0.0.1   localhost
127.0.1.1   xp962_lxc

Сохранить.


Старт контейнера
# lxc-start -n xp962_lxc -d

Посмотреть ip
# lxc-ls -f

Зайти по ssh
# ssh ubuntu@192.168.0.222

$ sudo -i
Настроим часовой пояс Москва.
# dpkg-reconfigure tzdata
# apt-get update -y
# apt-get upgrade -y
# apt-get install mc htop samba nano wget -y

Настроим ipv6
# nano /etc/sysctl.conf
В конец файла:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Сохранить.
# sysctl -p
Проверка:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1

# reboot

Зайти по ssh
# ssh ubuntu@xp962_lxc

Подключение под debian 7/8, ubuntu 12.04/14.04/16.04:
 

# sudo sh -c 'echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'
# wget --quiet -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | sudo apt-key add - && sudo apt-get update
# sudo apt-get install postgresql-pro-1c-9.6 -y

# systemctl start postgresql
# systemctl enable postgresql
# systemctl status postgresql

● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Вт 2017-04-18 08:51:27 UTC; 1min 18s ago
Main PID: 1455 (code=exited, status=0/SUCCESS)

апр 18 08:51:27 p962_lxc systemd[1]: Starting PostgreSQL RDBMS...
апр 18 08:51:27 p962_lxc systemd[1]: Started PostgreSQL RDBMS.

# su - postgres
$ psql -l
$ psql
q
Далее наберем
\password
введем два раза новый пароль pass
и наберем команду
\q
для выхода.
$ exit
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu.
Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных. Выполним
# netstat -atn|grep 0.0.0.0:54
Мы должны получить строку с номером порта (обычно 5432)/
# ps ax | grep postgres
# netstat -nlt
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN
tcp6       0      0 :::139                  :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN
tcp6       0      0 :::445                  :::*                    LISTEN
 

# poweroff

Сохранение контейнера xp962_lxc
# cd /var/lib/lxc/
# tar -cvzf xp962_lxc.tar.gz ./xp962_lxc
_______________________________________________

Установка 1С

Клонировать контейнер
# lxc-clone -o xp962_lxc -n xp962

# mkdir /var/lib/lxc/xp962/rootfs/home/ubuntu/8.3.10.2252
# cp /home/user/_soft/8.3.10.2252/deb64.tar.gz /var/lib/lxc/xp962/rootfs/home/ubuntu/8.3.10.2252/

Старт контейнера
# lxc-start -n xp962 -d

Посмотреть ip
# lxc-ls -f

# ssh ubuntu@xp962
# systemctl status postgresql
# netstat -atn|grep 0.0.0.0:54

# apt-get install imagemagick -y
Строка ниже срабатывает далеко не всегда
# apt-get install ttf-mscorefonts-installer -y
# fc-cache -f -v
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------


# cd /home/ubuntu/8.3.10.2252/# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd ..
# rm -R /home/ubuntu/8.3.10.2252
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart

netstat -atn|grep 0.0.0.0:15
netstat -atn|grep 0.0.0.0:54

Сохраним без базы.

# poweroff

Поскольку сервер 1с запускался нужно
почистить

# rm -R /var/lib/lxc/xp962/rootfs/home/usr1cv8/.1cv8

Сохранение контейнера xp962
# cd /var/lib/lxc/
# tar -cvzf xp962.tar.gz ./xp962

Восстановление контейнера
!!!# cd /var/lib/lxc
!!!# tar xvzf xp962.tar.gz

!!!Старт контейнера
!!!# lxc-start -n xp962 -d

!!!Посмотреть ip
!!!# lxc-ls -f


Клонирование контейнера с заменой кластера 1с
Клонировать контейнер
# lxc-clone -o xp962 -n xp962_1
Почистить кластер 1с
!!!# rm -R /var/lib/lxc/xp962_1/rootfs/home/usr1cv8/.1cv8
Создадим базу (база подхватится из клонируемого контейнера):

Старт контейнера
# lxc-start -n xp962_1 -d


Посмотреть ip
# lxc-ls -f

Создадим базу (база подхватится из клонируемого контейнера):




# poweroff
Сохранение контейнера xp962_1
# cd /var/lib/lxc/
# tar -cvzf xp962_1.tar.gz ./xp962_1

Старт контейнера
# lxc-start -n xp962_1 -d

Посмотреть ip
# lxc-ls -f





PostgreSQL - реальная альтернатива для высоконагруженных систем на базе 1С

# nano /etc/postgresql/9.6/main/postgresql.conf
ssl = false
autovacuum = on
autovacuum_max_workers =3
Autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.05
online_analyze.enable = on
fsync = on
synchronous_commit = off

# reboot

Тест показал 38 попугаев.

Настройки ниже  ускорения не дали.

Configuration calculator for PostgreSQL



# nano /etc/postgresql/9.6/main/postgresql.conf 
 
max_connections = 20
shared_buffers = 4GB
effective_cache_size = 12GB
work_mem = 209715kB
maintenance_work_mem = 1GB
min_wal_size = 2GB
max_wal_size = 4GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100


PostgreSQL в 1С:Предприятии и в облачной системе 1С:Fresh

•fsync По умолчанию включен – при COMMIT данные пишутся из кэша ОС на диск При использовании RAID-массивов можно отключить
•effective_cache_size
•Рекомендуемое значение – не менее 50% объема RAM
•Сервер
•4 - 512 Gb RAM
•2 - 256 CPU cores
•RAID 0-1 или SSD
•Отключить HyperThreading
•Отключить Energy Saving
•Запретить своппинг разделяемой памяти SYSV/posix
•shared_buffers = RAM / 4
•temp_buffers = 256MB
•work_mem = RAM / 32..64 или 32MB..128MB
•maintenance_work_mem = RAM /1 6..32
или work_mem * 4
или 256MB..4GB
•effective_cache_size = RAM - shared_buffers
•effective_io_concurrency = 2
•Для одиночного диска = 1, для RAID - 2 или больше
•autovacuum = on
•autovacuum_max_workers = NCores / 4..2 но не меньше 4
--------------------------------------------------------------------------------------------------------------
Если развернуть контейнер на другом hoste PostgreSQL не запускается.
# systemctl restart postgresql.service
# journalctl
май 15 08:00:09 xp962_1 postgresql@9.6-main[733]: Error: The cluster is owned by group id 115 which does not exist

# id -u postgres
108
# userdel postgres

# getent group postgres
postgres:x:114:

# groupmod -g 115 postgres



# getent group postgres
postgres:x:115:


 
adduser -UID 110 postgres
 
# chown -R postgres:postgres /var/lib/postgresql

Вообщем не помогает.
Поробуем так:
# service postgresql stop
# su - postgres
$ cd /var/lib/postgresql/9.6/
echo "`date +"%Y-%m-%d_%H-%M-%S"`

$ tar -cvzf main_backup-`date +%Y-%m-%d_%H-%M-%S`.tgz main
!!!$ tar -cvzf main_backup-`date +%s`.tgz main
$ rm -rf main
!!!$ mkdir main
!!!$ chmod go-rwx main

# apt-get purge postgresql-pro-1c-9.6 -y
# apt-get install postgresql-pro-1c-9.6 -y
# su - postgres
$ psql -l
$ psql
q
Далее наберем
\password
введем два раза новый пароль pass
и наберем команду
\q
для выхода.
$ exit
Обратите внимание, что данный пароль устанавливается для внутреннего пользователя базы данных, а не для одноименного пользователя операционной системы Ubuntu.
Проверим, корректно ли запущен и работает наш сервер PostgreSQL который нам нужен для дальнейшего развертывания базы данных. Выполним
# netstat -atn|grep 0.0.0.0:54
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
Мы должны получить строку с номером порта (обычно 5432)/
# ps ax | grep postgres
$ ps ax | grep postgres
 2142 ?        S      0:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf
 2144 ?        Ss     0:00 postgres: 9.6/main: checkpointer process
 2145 ?        Ss     0:00 postgres: 9.6/main: writer process
 2146 ?        Ss     0:00 postgres: 9.6/main: wal writer process
 2147 ?        Ss     0:00 postgres: 9.6/main: autovacuum launcher process
 2148 ?        Ss     0:00 postgres: 9.6/main: stats collector process
 2191 pts/4    S      0:00 su - postgres
 2222 pts/4    S+     0:00 grep postgres

# netstat -nlt
Все работает, теперь осталось восстановить кластер из архива:
# service postgresql stop
# su - postgres
$ cd /var/lib/postgresql/9.6/
$ tar -cvzf main_backup-`date +%s`.tgz main
$ rm -rf main
!!!$ mkdir main
$ tar xvzf main_backup-1494840424.tgz
!!!$ chmod go-rwx main
$ psql -l

# rm -R /home/usr1cv8/.1cv8
# service srv1cv83 restart
# netstat -atn|grep 0.0.0.0:15
# netstat -atn|grep 0.0.0.0:54
При подключении из 1с нужно заново создать
базу demo c теми же параметрами.
https://serveradmin.ru/bekap-i-vosstanovlenie-bazyi-1s-v-bd-postgresql/

.