タグ

postgresqlとperformanceに関するmichael-unltdのブックマーク (11)

  • 第2章 PostgreSQLの内部構造―プロセスやメモリの流れ、特徴的な機能のしくみ | gihyo.jp

    図1 主なプロセスの流れ PostgreSQLは、ライタがデータファイルやインデックスファイルをディスクに更新しています。ただし、その更新は、コミットに合わせてリアルタイムで行われているわけではありません。性能向上のため、チェックポイントと呼ばれる更新タイミングが発生するまでは、更新があっても共有バッファにデータを貯めておきます。この貯められたデータをダーティページと呼びます。そしてチェックポイントのタイミングで、チェックポインタがダーティページをディスクに書き込みます。 そのため、共有バッファに更新情報を貯めている間に障害が起きると、ダーティーページを失う可能性があります。それを防ぐために、共有バッファ中のデータに対してどのような更新を行ったかの情報を保存しているのがWALです。WALはコミットのタイミングでWALライタが記録しています。クラッシュリカバリが必要になったときは、WALの中

    第2章 PostgreSQLの内部構造―プロセスやメモリの流れ、特徴的な機能のしくみ | gihyo.jp
    michael-unltd
    michael-unltd 2020/06/04
    “図2 メモリの利用からデータファイルの更新までの流れ”
  • チューニング ~データベースチューニング~|PostgreSQLインサイド

    データベースのチューニングとは、データベースの性能維持または向上を阻害するボトルネックを見つけ、その原因を調査し、解決していくことです。ここでは、チューニングの1つである「データベースチューニング」について解説します。 1. データベースチューニングとは データベースチューニングは、サーバーの性能を最大限に利用できるようにデータベースシステムが使用するメモリー使用量を最適化し、ディスクI/Oを減らすことを目的としています。システム構成や運用内容に応じて、セットアップ時の初期設定の段階で実施しておくことができます。 データベースチューニングの解説を始める前に、まず、データベースチューニングの前提となるメモリーとディスクI/Oについて簡単に説明した後、実際のチューニング方法を説明していきます。 1.1 メモリーとディスクI/O PostgreSQLがデータベースにアクセスする場合、まずディスク

    チューニング ~データベースチューニング~|PostgreSQLインサイド
  • PostgreSQLのログ分析ツール pgBadgerを試す | my opinion is my own

  • PostgreSQL VACUUM で年末大掃除 | TECHSCORE BLOG | TECHSCORE BLOG

    これは TECHSCORE Advent Calendar 2018 の18日目の記事です。 今回はPostgreSQLを運用する上で絶対に無視できない「VACUUM」について、その機能と役割を確認していきたいと思います。 VACUUMとは VACUUMは、テーブルの実体となるファイルの中から、不要領域を探索し、再利用可能な状態にしていくものです。VACUUMを全く実行しない場合、ファイルサイズが増え続け、パフォーマンスの低下、ディスクスペースの圧迫へとつながります。 AUTO VACUUM機能 PostgreSQLには「AUTO VACUUM」機能が搭載されており、自動で随時VACUUMが実行されるため、多くの場合問題となりません。しかし、AUTO VACUUMも万能ではありません。テーブルによって追加・更新・削除の頻度、規模は様々であるため、AUTO VACUUM機能によるVACUUM

    PostgreSQL VACUUM で年末大掃除 | TECHSCORE BLOG | TECHSCORE BLOG
  • PGTune - calculate configuration for PostgreSQL based on the maximum performance for a given hardware configuration

    PgTune - Tuning PostgreSQL config by your hardware

  • PostgreSQLで実行中のautovacuumを停止する方法

    追記型のRBDであるPostgreSQLにはautovacuum(オートバキューム)という便利な機能があり、updateやdeleteなどで不要な領域が一定の割合に達すると、自動で不要な領域を掃除してくれます。 その閾値はautovacuum_vacuum_scale_factorとautovacuum_vacuum_thresholdパラメータで設定されますが、デフォルトでは一律で約20%となっています。 テーブルごとに閾値を設定することも可能ですので、来であればテーブルサイズを予測して、vacuumのタイミングも設計すべきなのでしょうが、なかなかそこまでは難しいと思います。 いざ運用を始めてみると、ある日突然巨大なテーブルでautovacuumが走り出し、数時間止まらずにあたふたしたDB管理者は多いと思います。私もその一人です。 autovacuumのプロセスをpg_cancel_b

    PostgreSQLで実行中のautovacuumを停止する方法
  • PostgreSQL のパフォーマンスチューニング - Qiita

    PostgreSQL Advent Calendar 2014 の 13日目です。 Advent Calendar を今年もやってみたいと思って、枠が空いていたので飛び込んでみました。 昨日は osapon さんの libpqxx を使ってみたでした。 概要 PostgreSQL のパフォーマンスチューニングは大きく下記に分かれます。 システムチューニング SQL チューニング ここでは Linux 上で動かしていることを前提に、それぞれ説明します。 システムチューニング システムチューニングの概要 システムチューニングとは、OS または PostgreSQL の設定を変更することです。 それぞれ順に説明します。 OS チューニング PostgreSQL では特にメモリ関連でOSパラメータを設定変更すると、高速化効果が得られます。 特に下記のカーネルパラメータに注意します。 vm.dirt

    PostgreSQL のパフォーマンスチューニング - Qiita
  • スロークエリの分析 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 スロークエリ (時間のかかるSQL) を発見するまでの手順を解説します。スロークエリ分析と改善は以下の流れで行うことになります。この記事では主に 1. のスロークエリの特定方法について解説します。2.については『スロークエリの改善』を参考にしてください。 どのSQLが遅いのかを見つける。 そのSQLがなぜ時間がかかるのかを判断する。 設定パラメータ、SQL、スキーマなどを改善する。 着目したSQLの性能を再測定し、2. から繰り返す。 着目したSQLのチューニングが完了したら、他のボトルネックを探すため 1. から繰り返す。 スロークエリの見つけ方 スロークエリを見つけるには、大きく分けて統計情報ビューを使う方法と、サーバログを使う方法の2つがあります。統計情報ビューを使う方法は PostgreSQL 8.4 以降でしか利用できませんが

  • PostgreSQLパーティショニングのススメ | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは 村上です。 この記事はTECHSCORE Advent Calendar 2014、9日目の記事です。 日はパーティショニングについて書きたいと思います。 データの分割 システム開発をする上でデータを分割したい時がよくあると思います。 例えば マルチテナントな時 スキーマ、テーブルスペースでデータを分けたい データ量増加により、何かのキーでテーブルを分けたい などです。 今回は上記の3つめについて書きます。 テーブルのパーティショニング データを分割(パーティショニング)したいものにはどんなものがあるか? 例えば、履歴データ ユーザーの履歴データを格納するデータは日を追うごとに増えていきます。 他には、お気に入り商品 この場合、最大で「ユーザー数 ✕ 商品数」のデータが格納されます。 こういったテーブルに対してはパーティショニングをする必要がでてきます。 データを分割する場合

  • PostgreSQL初期設定これだけは変えておこう

    PostgreSQL Advent Calendar 2012(全部俺)のDay 1です。 初日は、まずPostgreSQLを使い始める際の基的なお作法である初期設定について簡単にまとめてみます。 PostgreSQLは、パラメータの設定を変更せずにデフォルトの設定のまま使い始めても、もちろん動くことは動くのですが、後からいろいろと問題が出てくることもありますし、特に性能関連のパラメータのデフォルト値はあまりに小さく、チューニング云々以前の問題だったりします。 というわけで、私が普段PostgreSQLをインストールして使い始める時、開発機であってもいくつかパラメータを初期設定するようにしています。 使い始める前に設定から入るのは確かに面倒なのですが、最初に設定が必要なパラメータは少数(今回紹介するのは5つ)ですので、まずは最初に必要最低限の設定をしてから使い始めましょう、というのが

  • memcached+PostgreSQLで実現するハイパフォーマンスWebアプリケーション構築(1/4) ― @IT

    稿の前提環境 memcached 1.2.5 データベース:PostgreSQL 8.3.1 OS:CentOS 5(Linux kernel 2.6 ) シェル:bash CPU:Intel Core2Quad 9660 2.4GHz RAM:PC2-6400 8GBytes memcachedは、Danga Interactiveによって開発されたオープンソースのメモリキャッシュサーバです。 メモリ上にデータを保存するのでmemcachedを終了するとデータが失われますが、(OracleMySQLといった)RDBMSと比較するとけた違いの高速レスポンス性能を有し、数千万件という大量のデータを扱ってもほとんど性能が劣化しないという特徴があります。 機能は限界まで切り詰められ、基的にはキーとデータの組(以下、itemと呼びます)の保存と検索と削除しかできません。 にもかかわらず、me

    memcached+PostgreSQLで実現するハイパフォーマンスWebアプリケーション構築(1/4) ― @IT
  • 1