The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Опыт настройки связки PostgreSQL и ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Второй уровень иерархии тем в форуме реализован через вкладку "Показ ключевых тем".
"Раздел полезных советов: Опыт настройки связки PostgreSQL и ..." +/
Сообщение от auto_tips (??), 06-Сен-11, 14:27 
Потребовалось сделать сервер 1С для чего была выбрана связка OracleLinux 6.1 + 1C82 (8.2.14.519) + Postgres 9.0.4.

Собрал следующее железо для тестов:

   MB: Asus P5
   CPU : Intel(R) Pentium(R) D CPU 3.20GHz 2 ядра
   MEM : 8G
   HDD : 1x160G 7200 (старый нового не нашлось)

hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads:   2670 MB in  2.00 seconds = 1335.62 MB/sec
Timing buffered disk reads:  220 MB in  3.00 seconds =  73.30 MB/sec

При установке выделил под SWAP 10G, остальное под корень, получилось что-то вроде:

   /dev/sda1   *           1       18152   145803264   83  Linux
   /dev/sda2           18152       19458    10484736   82  Linux своп / Solaris

ставил все без LVM, разбивка руками. Выбрал минимальную установку

Прицепил RPM-репозитории:

   cd /etc/yum.repos.d
   touch public-yum-ol6.repo

добавил в файл public-yum-ol6.repo:

   [ol6_ga_base]
   name=Oracle Linux 6 GA - $basearch - base
   baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/0/base/$basearch/
   gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
   gpgcheck=1
   enabled=1

   [ol6_u1_base]
   name=Oracle Linux 6 U1 - $basearch - base
   baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/1/base/$basearch/
   gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
   gpgcheck=1
   enabled=1

затем все как обычно

   yum update

итак что видим ....
если верить описанию система очень быстрая, некоторые прогнозируют прирост аж 110 процентов.
смотрим что есть по дефолту

cat /etc/sysctl.conf

   # Kernel sysctl configuration file for Red Hat Linux
   # Controls IP packet forwarding
   net.ipv4.ip_forward = 0

   # Controls source route verification
   net.ipv4.conf.default.rp_filter = 1

   # Do not accept source routing
   net.ipv4.conf.default.accept_source_route = 0

   # Controls the System Request debugging functionality of the kernel
   kernel.sysrq = 0

   # Controls whether core dumps will append the PID to the core filename.
   # Useful for debugging multi-threaded applications.
   kernel.core_uses_pid = 1

   # Controls the use of TCP syncookies
   net.ipv4.tcp_syncookies = 1

   # Disable netfilter on bridges.
   net.bridge.bridge-nf-call-ip6tables = 0
   net.bridge.bridge-nf-call-iptables = 0
   net.bridge.bridge-nf-call-arptables = 0

   # Controls the maximum size of a message, in bytes
   kernel.msgmnb = 65536

   # Controls the default maxmimum size of a mesage queue
   kernel.msgmax = 65536

   # Controls the maximum shared segment size, in bytes
   kernel.shmmax = 68719476736

   # Controls the maximum number of shared memory segments, in pages
   kernel.shmall = 4294967296
   vm.overcommit_memory=2

неплохо
добавим на всякий случай

   kernel.panic=5
   kernel.panic_on_oops=5
   kernel.panic_on_io_nmi=5
   kernel.panic_on_unrecovered_nmi=5

отключим все ненужное .... взламывать сервер некому, он будет сугубо локальным.

   chkconfig ip6tables off
   chkconfig iptables off
   chkconfig netfs off
   chkconfig postfix off
   chkconfig saslauthd off

затем отключим SELinux, так как с ним не работает 1C.

vi /etc/selinux/config

   SELINUX=disabled

и reboot

Приступим к настройке 1C и PostgreSQL. Прочитал  статью http://www.alsigned.ru/?p=1129 про установку 1С 8.2 в связке с Postgresql 9.0. Сделал все как в статье, единственно подменил в конфигурации PostgreSQL 9.0.4 и патчи взял для версии 9.0.3 (http://v8.1c.ru/overview/postgres_patches_notes.htm).

Краткое изложение процесса:

Загружаем необходимые пакеты:
   yum install rpm-build gcc make glibc-devel bison flex python-devel tcl-devel readline-devel \
      zlib-devel openssl-devel  krb5-devel  e2fsprogs-devel gettext pam-devel openldap-devel icu libicu libicu-devel

Патчим PostgreSQL
   wget http://v8.1c.ru/overview/postgresql_patches/9-0-4/postgresql...
   rpm -i postgresql-9.0.4-1.1C.src.rpm

В файле /usr/lib/rpm/macros в параметре %_default_patch_fuzz заменяем 0 на 2.
В файле /root/rpmbuild/SOURCES/postgresql.init прописываем:

   PGENGINE=/usr/pgsql/bin
   PGDATA=/var/lib/pgsql/data
   PGLOG=/var/lib/pgsql/pgstartup.log

В spec-файле /root/rpmbuild/SPECS/postgresql-9.0-4C.spec меняем  postgresql-9.0 на postgresql, получится примерно так:

   525 chkconfig --add postgresql
   530 sbin/service postgresql condstop >/dev/null 2>&1
   531 chkconfig --del postgresql
   537 /sbin/service postgresql condrestart >/dev/null 2>&1

Собираем пакет с пропатченным PostgreSQL:
    rpmbuild -ba --define 'runselftest 0' /root/rpmbuild/SPECS/postgresql-9.0-4C.spec

Устанавливаем пакет:
   rpm -i /root/rpmbuild/RPMS/x86_64/*.rpm

Инициализируем БД:

    su postgres
   /usr/pgsql/bin/initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8

Запускаем postgresql:

   service postgresql start

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


Указываем имя хоста в /etc/hosts (имя должно совпадать с именем HOSTNAME, указанным в файле /etc/sysconfig/network):

127.0.0.1       localhost 1csrv 1csrv.mydomain.local
192.168.1.1     1csrv 1csrv.mydomain.local


Устанавливаем пакеты с 1С:

   rpm -i 1C_Enterprise82-common-8.2.13-205.x86_64.rpm 1C_Enterprise82-server-8.2.13-205.x86_64.rpm \
      1C_Enterprise82-ws-8.2.13-205.x86_64.rpm 1C_Enterprise82-common-nls-8.2.13-205.x86_64.rpm \
      1C_Enterprise82-server-nls-8.2.13-205.x86_64.rpm 1C_Enterprise82-ws-nls-8.2.13-205.x86_64.rpm

далее активируем сервисы 1c и postgresql:

   chkconfig srv1cv82 on
   chkconfig postgresql on

В .bash_profile правим "PGDATA=/var/lib/pgsql9/data" на "PGDATA=/var/lib/pgsql/data".

Далее запустил 1С-клиента, создал базу TEST и запустил тест Гилева (gilev.ru)
...ждал минут 20 !!!! набрал 9.1 !!! балов явно мало для комфортной работы. Гилев рекомендует включить блокировки вручную .... что и делаем через конфигуратор
снова тест ..... уже 14 баллов.

Пробуем  оптимизировать postgresql.conf:

   shared_buffers = 1024MB                 # min 128kB
   work_mem = 400MB                                # min 64kB
   maintenance_work_mem = 2048MB           # min 1MB
   fsync = off                             # turns forced   synchronization on or off
   wal_sync_method = fdatasync             # the default is the first option
   commit_delay = 50                       # range 0-100000, in microseconds
   commit_siblings = 7                     # range 1-1000
   cpu_tuple_cost = 0.001                  # same scale as above
   cpu_index_tuple_cost = 0.0005           # same scale as above
   effective_cache_size = 4096MB

далее

   /etc/init.d/postgresql restart
   /etc/init.d/srv1cv82 restart

Следующее тестирование показало 20.4 баллов.... неплохой результат.
Поставил две конфигурации кадрыКОРП  + бухгалтерияКОПРП. В конфигураторе сменил блокировки на управляемый режим блокировок.

Написал скрипт для чистки логов и бекапа БД и поместил его в cron:

   #!/bin/bash

   set +x

   /bin/rm -rf /backups/1c/*.log
   /bin/touch /backups/1c/1c8_bkp.log

   BKPDIR=/backups/1c

   TIME=`date +%d-%m-%Y_%H:%M:%S`  # год,месяц,день,часы,минуты
   DATE_ARC=`date +%d%m%Y`

   LOG=/backups/1c/1c8_bkp.log

   dl() {
     $* >> $LOG 2>&1
   }

   dl echo $TIME
  
   dl /etc/init.d/srv1cv82 stop
   dl /bin/sleep 10


   /bin/find /backups/1c -type f -mtime +1 -print | /usr/bin/xargs  /bin/rm -f
   /bin/find /var/lib/pgsql/data/pg_log/ -type f -mtime +1 -print |  /usr/bin/xargs /bin/rm -f

   /usr/pgsql/bin/pg_dump -U postgres -Fc -Z9 -c -f /backups/1c/buh.$DATE_ARC.sql buh
   /usr/pgsql/bin/pg_dump -U postgres -Fc -Z9 -c -f /backups/1c/hrm.$DATE_ARC.sql hrm
   /usr/pgsql/bin/pg_dump -U postgres -Fc -Z9 -c -f /backups/1c/test.$DATE_ARC.sql test

   dl echo $TIME
   dl /etc/init.d/srv1cv82 start

Вот пожалуй и все


URL: http://www.alsigned.ru/?p=1129
Обсуждается: https://www.opennet.ru/tips/info/2621.shtml

Ответить | Правка | Cообщить модератору

Оглавление
Раздел полезных советов: Опыт настройки связки PostgreSQL и ..., auto_tips, 06-Сен-11, 14:27  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру