Debian:1CのPostgreSQLパフォーマンス

インターネットにはすでにPostgreSQLと1C 8.2の「適切な」構成に関する記事がたくさんありますが、常に落とし穴があります。 異なるオペレーティングシステムでのPostgreSQL DBMSのパフォーマンスを比較する場合、指標は大きく異なります。 最大の攻撃は、最愛のUbuntu(人類)によってもたらされました。 このOSのコンソールで長い日夜を過ごした後、彼女は完全に失望しました。



PostgreSQLはUbuntu Serverでブレーキをかけます。 それらをどうするか? レーキを何回踏むことができますか?



だから、私たちは何を持っている:2つのプロセッサ、32GBのRAM、〜900GBの総容量を持つ6つのディスクのRAID 10アレイを持つIBM x3650 M4のおもちゃ。 オープンソースソフトウェアのサポーターであり、Debianや派生物などのシステムでのかなりの経験があるため、OSとして最も「人間」を選択することにしました-Ubuntu Server x64。 後で判明したように、それは私の最初の間違いでした。



私はDBMSに直接精通していますが、Linuxプラットフォームに特化した経験はまだほとんどありません。 したがって、どこかで間違いを犯した場合は、アドバイスを厳しくお願いします。 結局私だけではありません。



最後に、1CはDebian / Ubuntuの下でPostgreSQLの新しいビルドをリリースしました。これはほとんどそのままで動作します。



インストールプロセスは、1ダースのコンソールコマンドに簡素化されました。



admin@srv1c:~# sudo su
      
      







1.メモリセグメントの最大サイズを8GBに増やします。 性能の低いマシンの場合、64 MBからRAMボリュームの半分までインストールします。



 root@srv1c:~# echo "kernel.shmmax=8589934592" >>/etc/sysctl.conf root@srv1c:~# sysctl -p
      
      







2.ロシア語のロケールを生成し、LANG環境変数を設定します。データベース初期化スクリプトはそれを使用します。



 root@srv1c:~# locale-gen en_US ru_RU ru_RU.UTF-8 root@srv1c:~# export LANG="ru_RU.UTF-8"
      
      







3.必要な依存関係をインストールします。



 root@srv1c:~# apt-get install libssl0.9.8 ssl-cert postgresql-common libossp-uuid16 libxslt1.1
      
      







4. 64ビットDEBシステム用のPostgreSQL 9.1.2のアーカイブをusers.v8.1c.ruサイトから取得し、必要なコンポーネントを解凍してインストールします。 アーカイブには多くの必要なコンポーネントと不要なコンポーネントがあるため、すべてがpostgresql、postgresql-client、postgresql-contribで十分に機能します。



 root@srv1c:~# tar zxf postgresql_9_1_2_deb_x86_64_tar.gz
      
      







5.パッケージのインストール:



 root@srv1c:~# cd ./postgres root@srv1c:~# dpkg -i postgresql-9.1_9.1.2-1.1C_amd64.deb libpq5_9.1.2-1.1C_amd64.deb postgresql-client-9.1_9.1.2-1.1C_amd64.deb postgresql-contrib-9.1_9.1.2-1.1C_amd64.deb
      
      







6.インストール後、構成ファイルをもう少し調整する必要があります。パッケージ1cで配信されるのは奇妙ではないため、エスケープ文字を処理するための誤った設定が含まれています。 「文字227」の「SECOND」またはその近くの構文エラー。 /etc/postgresql/9.1/main/postgresql.confファイルの次のパラメーターを修正します。



 root@srv1c:~# nano /etc/postgresql/9.1/main/postgresql.conf
      
      







backslash_quote = on escape_string_warning = off standart_conforming_strings = off

保存して閉じます:Ctrl + x、Y



7.サービスを再起動します。



 root@srv1c:~# service postgresql restart
      
      







8. postgresユーザーのパスワードを変更します-これは、データベースを作成するときに設定するパスワードです。



 root@srv1c:~# su postgres postgres@srv1c:/root$ cd ~ postgres@srv1c:~$ psql -U postgres -c "alter user postgres with password ' ';" postgres@srv1c:~$ exit
      
      







9. PostgreSQL 1sパッケージの更新を無効にします。



 root@srv1c:~# echo "libpq5" hold | dpkg --set-selections root@srv1c:~# echo "postgresql-9.1" hold | dpkg --set-selections root@srv1c:~# echo "postgresql-client-9.1" hold | dpkg --set-selections root@srv1c:~# echo "postgresql-contrib-9.1" hold | dpkg --set-selections
      
      







10.サービスを再起動し、PostgreSQLが起動しているかどうかを確認します。



 root@srv1c:~# service postgresql restart root@srv1c:~# netstat -atn|grep 5432
      
      







答えは次のようになります。



 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
      
      







または



 tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
      
      







これで、PostgreSQLのインストールが完了し、完了したとみなすことができます。



1C 8.2.16 + PostgeSQL 9.1.2バンドルの速度を比較すると、Ubuntu Server 12.04でひどいブレーキが検出されました。 UbuntuのGilev“TPC_1_GILV”によるテストでは、平均10〜14ポイントが示されました。これは、制御ベースが関与しないテストベースによるものです。 比較のために、Win 2k8およびIBM DB2でクアッドコアi5プロセッサー、8 GBのRAMを搭載したより強力でないシステムでは、同じテストで52のオウムが示されました。 1か月で書類を保管すると、若い車の場合は3時間もかかりませんでした。 PostgreSQLでも同様の結果が得られました。 一部の同僚は、同様のパラメーターでCentOSの結果に応答します。 したがって、CentOSでは同じテストで56〜62ポイント、純粋なDebianでは54ポイントから得られます。 すべてのテストでは、fsyncを無効にして同一のPG設定を使用しました。 Ubuntuは、CentOS LVM + ext3でext4をテストしました。



すべてのプラットフォームで、PGおよび1C以外は設定されていません。 Ubuntuでは、EtersoftのいくつかのバージョンのPGがテストされ、1Cのパッチと1Cのアセンブリを使用して手動でアセンブルされました。CentOSでは、Etersoftのバージョンが使用されました。



Ubuntuのパフォーマンスを改善するオプションはありますか?



1C + PostgreSQLをインストールするためのLinuxディストリビューションの選択について投票したいと思います。 評価のリーダーはCentOSになると思いますが、Debianは私の心に近づいています。



成功したインストールエクスペリエンスをテスト結果とコメントで共有できたらうれしいです。



私はすでにCentOS用のシステムを準備しています。 新しい記事でテスト結果の配信を停止します。



All Articles