スレッドメモ
MLやNewsのスレッドをメモする試み。
2003-10-09 (木)
◆ [pgsql-jp] Solaris での最適化
[31197] 竹ノ内まり子 (10/9)
現在Ultraに入っているPostgreSQLをチューンしろとの指示です。indexなどはこれから張るとして、shmmaxなどのパラメータを変更したいと思います。
[31198] ISHIDA Akio (10/9)
shmmax の適切な値は、postgresql.conf の shared_buffers に依存するわけですが、その shared_buffers の値は、キャッシュのヒット率をpg_statio_user_tables で確認し、かつ、vmstat コマンド等で共有メモリを大きくしすぎた副作用が出ないかを確認しつつ設定する、といった所でしょうか。
[31201] Tatsuo Ishii (10/9)
その前に確認したほうがよいと思いますが,SolarisではたぶんPostgreSQLはデフォルトではコンパイル時に最適化がされないと思います.つまり,コンパイルフラグに-O2が付いていないのではないかという事です.もしそうならば-O2をつけてrecompileしないと全く性能が出ません.
[31202] Tsunehisa Kazawa (10/9)
上記の話と並行して、以前、とある環境 (SPARC Solaris、PostgreSQL 7.2 でした) では、gcc でコンパイルするよりも sun のコンパイラでコンパイルした方が 40% ほど性能が上だった、という話を聞いたことがあります。
[31203] Tatsuo Ishii (10/10)
40%ですか?失礼ながらそれはちょっと眉唾なのでは:-)最近本家のMLでSun CC とgccを比較した人がいて,その結果最初はSun CCの方が40%以上速いということでしたが,よく検証したらgccの方は-O2がついていないだけだったということで,最適化後はたいして違わない結果が出たという落ちでした.まあ,私も自分で確認したわけではないのですが...
[31204] Tsunehisa Kazawa (10/11)
その可能性は大いにあります (自分自身、コンパイル時に最適化オプションを気にしたことがありませんでした。その結果を伝えてくれた人がそうだったかどうかまでは確認していませんが…)。すみません。
[31205] sugita (10/11)
最適化には -O? の他にもアーキテクチャとか場合に合わせて指定した方がよいオプションがあるからとか。
[31206] Tatsuo Ishii (10/11)
その昔,Solaris上のgccがバギーで,最適化すると間違ったコードを吐いたから,というのが理由だったと思います.さすがに最近のgccはそういうこともないので,7.4ではSolarisでもデフォルトで最適化されるようになります.