ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

2022-01-01から1年間の記事一覧

Hyper-V の論理プロセッサにおけるコンテキストスイッチとパフォーマンスへの影響

Hyper-Vでは特定のワークロードで論理プロセッサのコンテキストスイッチが多発し、パフォーマンス低下を招くことがあるようです。

Hyper-V のルートスケジューラで他の VM の存在は仮想プロセッサのパフォーマンスにどれだけ影響するのか?

Hyper-V のルートスケジューラはラウンドロビン方式のスケジュールモデルです。また、仕事の無い VP に対してタイムスライスの割り当てはありません。

Hyper-V で論理プロセッサの利用状況は環境やワークロードに左右される

Hyper-V のゲストOS では VP と LP の対応が動的に変化します。また、LP の利用状況は環境やワークロードによって左右されます。

クライアントシステムでも Hyper-V のハイパーバイザースケジューラを変更できる

クライアントシステムでもハイパーバイザースケジューラの設定をすることは可能です。ただし、「ルートスケジューラ」のみ公式にサポートされる構成であることに注意が必要です。

Hyper-V のルートスケジューラでは複数 CPU 動作時に大きく性能劣化することがあるのかも

Windows 10 の Hyper-V でベンチマークを測定していると、複数 CPU 動作時に大きく性能劣化しました。これは「ルートスケジューラ」に原因があるのかもしれません。

Hyper-V で論理プロセッサと仮想プロセッサの対応は動的に変化する

Hyper-V で LP と VP の対応関係は動的です。この検証結果をまとめました。

SQL の COUNT(*) と COUNT(1) の結果は同じ

SQL の COUNT(*) と COUNT(1) は同じ結果が得られます。また、COUNT() 内の定数が何であっても結果は同じです。

PostgreSQL のボトルネック調査に待機イベントを活用する

PostgreSQL の pg_stat_activity ビューで待機イベントの情報を収集すると、ボトルネック調査に役立つかもしれません。

PostgreSQL の結合テーブル数と計画時間の関係

PostgreSQL の結合テーブル数と計画時間の関係を調べました。計画時間は join_collapse_limit, geqo_threshold といったパラメータの影響を受けることが分かりました。

PostgreSQL の join_collapse_limit がプランナに与える影響

PostgreSQL の join_collapse_limit がプランナに与える影響を実験から推測しました。平坦化の概念をつかむことができます。

PostgreSQL の deadlock_timeout を見直す優先度はどの程度か?

PostgreSQL のデッドロック検出待機時間パラメータである deadlock_timeout の見直しに、どれほどの優先度で取組むべきなのかを、デッドロック検出処理の仕組みの観点から調査しました。

OSS-DB Gold 合格までの道のり (2022/08/20)

OSS-DB Gold Ver.2.0 を合格することができました。教材・勉強方法・振り返りなどをまとめました。

PostgreSQL 高度技術者育成テキスト 摸擬問題集 OSS-DB Gold Ver.2.0 差分と誤記まとめ

「PostgreSQL 高度技術者育成テキスト」内の摸擬問題集に対し、OSS-DB Gold Ver.2.0 をベースとした差分と誤記の修正をまとめました。

PostgreSQL の式インデックスも統計情報の収集対象となる

PostgreSQL の式インデックス(関数インデックス)もテーブルと同様に統計情報の収集対象です。よって、式インデックス作成後に ANALYZE を実行しないと、正しく活用されません。また、pg_stats ビューは式インデックスの統計情報も参照できます。

OSS-DB Silver 合格までの道のり (2022/06/11)

OSS-DB Silver Ver.2.0 を受験し、無事に合格することができました。今回の挑戦に向けて、どのような準備を行ったかまとめます。

Excelのシリアル値の計算と活用法

Excelは日時をシリアル値で管理しています。本記事ではシリアル値の計算と活用法を解説します。

Hyper-V の仮想マシンで perf の "not supported" な項目を出力できるようにする

Hyper-V の仮想マシンで perf の一部項目を出力できませんでした。これを構成バージョンの見直しとパフォーマンス監視コンポーネントを有効にすることで解決できました。解決までの流れを説明します。

PostgreSQL のプリペアド文で汎用的な実行計画を選択するタイミング

PostgreSQL ではプリペアド文を繰り返し実行していると、汎用的な実行計画を作成することがあります。この実行計画の切り替えがいつ行われるのかを調べました。

DEIM2022 「近代的トランザクション処理技法」聴講メモ

DEIM2022 「近代的トランザクション処理技法」の聴講メモです。メモは口頭説明を中心にまとめています。資料を併せてご参照ください。

PostgreSQL の一時バッファはセッションを終了するまで解放されない

PostgreSQL の一時バッファの開放はセッション終了時となります。一時テーブルの削除タイミングやトランザクションの終了タイミングではありません。

PostgreSQL は統計情報の度数分布と実際の最小値・最大値との乖離を補正して行数推定することがある

PostgreSQL には統計情報の度数分布と実際の最小値・最大値が乖離した場合の影響を抑える機能があります。この機能によって実行計画の推定行数がどのように変化するかを検証しました。

PostgreSQL で指数表記の暗黙的キャストが意図しない型になることがある

PostgreSQL でも指数表記を解釈してくれます。ですが、指数表記の暗黙的キャストが意図した型になるとは限らないことに注意が必要です。

PostgreSQL のエクゼキュータによるノードの処理順

PostgreSQL のエクゼキュータによるノードの処理順はマニュアルに解説されています。この説明をかみ砕いて説明します。

PostgreSQL の auto_explain のパフォーマンスへの影響

PostgreSQL の auto_explain モジュールを有効化することでパフォーマンスにどの程度影響を与えるのか、検証を行いました。