HP-UXでOracleDBEE10gの性能劣化

このQ&Aのポイント
  • HP-UX 11i v3にてOracleDBEE10gを動作させておりますが、page in / page outが頻発しており、対応策をご存知でしたら教えていただきたく投稿します。
  • Oracle DBEEの初期化パラメータチューニング後に性能が劣化しています。
  • HP-UXでOracle DBEE10gの性能劣化が発生しており、対策方法を教えていただきたいです。
回答を見る
  • ベストアンサー

HP-UXでOracleDBEE10gの性能劣化

HP-UX 11i v3にてOracleDBEE10gを動作させておりますが、page in / page outが頻発しており、対応策をご存知でしたら教えていただきたく投稿します。 質問の仕方や情報不足など、不適切な点がある場合は何卒ご容赦いただけますと幸いです。 不足情報はご連絡頂けましたら提示いたします。 【サーバ基本情報】 CPU:PA-RISC OS:HP-UX 11i v3 (64bit) 物理メモリ:32GB 仮想メモリ:32GB 【事象】 Oracle DBEEの初期化パラメータチューニング後に性能が劣化。 【DB】 Ver:10g 初期化パラメータチューニング内容: 以下のパラメータについて、→の左右で、左側が変更前、右側が変更後です。 compatible = '10.2.0' log_buffer = 10485760 →268423168 pga_aggregate_target = 1073741824→1600M sga_max_size = 定義なし→8G sga_target =定義なし→8G shared_pool_size = 738197504 →1G streams_pool_size = 50331648 →0 db_cache_size = 671088640 →0 java_pool_size = 67108864 →0 large_pool_size =定義なし→0 【調査状況】 ・vmstat結果 pi/po:多発 cpu:idelが50~80%でパワーは余っている(全てをみていないためもう少し上下あるかもしれません) ・sar結果 I/O waitが20%~50%でたりする。(全てをみていないためもう少し上下あるかもしれません) ・swapinfo  mt 物理メモリのFREEが70%もある。 一方でスワップを20%以上利用。 ・その他 Oracleを停止するとスワップは全て解放される。 Oracleを起動するとreserveのUSEDが8449、FREEが-8449となる。 つまり、起動直後からスワップを予約してしまっていて、稼働中はその予約したスワップからメモリを利用しているように見受けられる。 【カーネルパラメータ】 NSTREVENT 50 NSTRPUSH 16 NSTRSCHED 0 STRCTLSZ 1024 STRMSGSZ 0 acctresume 4 acctsuspend 2 aio_iosize_max 0 aio_listio_max 256 aio_max_ops 2048 aio_monitor_run_sec 30 aio_physmem_pct 10 aio_prio_delta_max 20 aio_proc_max 0 aio_proc_thread_pct 70 aio_proc_threads 1024 aio_req_per_thread 1 allocate_fs_swapmap 0 alwaysdump 0 audit_memory_usage 5 audit_track_paths 0 btree_prune_min_interval 90 close_wake_blkdflks 0 cmpt_restrict_tl 0 core_addshmem_read 0 core_addshmem_write 0 create_fastlinks 0 default_disk_ir 0 desfree_pct 0 diskaudit_flush_interval 5 dlpi_max_clones 3992 dlpi_max_ub_promisc 1 dnlc_hash_locks 512 dontdump 0 dst 1 dump_compress_on 1 dump_concurrent_on 0 eqmem_limit 65536 executable_stack 1 expanded_node_host_names 0 fcache_fb_policy 0 fcache_seqlimit_file 100 fcache_seqlimit_scope 0 fcache_seqlimit_system 100 fcache_vhand_ctl 0 fcd_disable_mgmt_lun 0 filecache_max 16327262208 filecache_min 1632722944 fr_rulecache 0 fr_statemax 800000 fr_tcpidletimeout 86400 fr_tcptimewait 120 frnat_tcptimewait 120 fs_async 0 fs_symlinks 20 ftable_hash_locks 64 gvid_no_claim_dev 0 hires_timeout_enable 0 hp_hfs_mtra_enabled 1 intr_strobe_ics_pct 80 io_ports_hash_locks 64 ipf_icmp6_passthru 0 ipl_buffer_sz 8192 ipl_logall 0 ipl_suppress 1 ipmi_watchdog_action 0 ipnat_enable 1 ipnat_hostmap_size 127 ipnat_largenat_enable 0 ipnat_nat_size 127 ipnat_nat_table_size 127 ipnat_rdr_size 127 kmem_aggressive_caching 0 ksi_alloc_max 33600 ksi_send_max 32 lcpu_attr 0 lotsfree_pct 0 max_acct_file_size 2560000 max_async_ports 4096 max_mem_window 0 max_thread_proc 4048 maxdsiz 0xc0000000 maxdsiz_64bit 0x100000000 maxfiles 4096 maxfiles_lim 4096 maxssiz 0x8000000 maxssiz_64bit 0x40000000 maxtsiz 0x40000000 maxtsiz_64bit 0x40000000 maxuprc 3781 mprotect_reduce_protid_on 0 msgmbs 8 msgmnb 16384 msgmni 4200 msgtql 4200 ncdnode 150 nclist 8292 ncsize 36672 nflocks 8400 nfs2_max_threads 8 nfs2_nra 4 nfs3_bsize 32768 nfs3_do_readdirplus 1 nfs3_jukebox_delay 1000 nfs3_max_commit_threads 8 nfs3_max_threads 8 nfs3_max_transfer_size 1048576 nfs3_max_transfer_size_cots 1048576 nfs3_nra 4 nfs4_bsize 32768 nfs4_max_threads 8 nfs4_max_transfer_size 1048576 nfs4_max_transfer_size_cots 1048576 nfs4_nra 4 nfs_portmon 0 ngroups_max 20 ninode 8192 nkthread 8400 nproc 4200 npty 60 nstrpty 60 nstrtel 60 nswapdev 32 nswapfs 32 numa_mode 0 numa_policy 0 numa_sched_launch 1 override_umask 0 pagezero_daemon_enabled 1 patch_active_text 1 pci_eh_enable 1 pci_error_tolerance_time 1440 process_id_max 30000 process_id_min 0 remote_nfs_swap 0 rng_bitvals 9876543210 rng_sleeptime 2 rtsched_numpri 32 rusage_hires_enable 0 sched_idle_ht_steal_policy 0 sched_thread_affinity 6 scroll_lines 100 secure_sid_scripts 1 semaem 16384 semmni 8400 semmns 16800 semmnu 4196 semmsl 2048 semume 100 semvmx 32767 shmmax 34359738368 shmmni 4200 shmseg 512 streampipes 0 swchunk 2048 sysv_hash_locks 128 tcphashsz 0 timeslice 10 timezone 420 uname_eoverflow 1 vnode_cd_hash_locks 128 vnode_hash_locks 128

質問者が選んだベストアンサー

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

環境も無いのでお役には立てないかもですが、 > Oracle DBEEの初期化パラメータチューニング後に性能が劣化。 どのパラメータが原因か絞り込めれば、解決の糸口になるかもしれません。1つづつ戻していくか、初期値から変更してくか、どちらにせよ面倒でしょうが。

intercity123
質問者

お礼

ご回答ありがとうございます。 性能劣化の原因はI/Oであることが間違いなさそうです。そして、I/O負荷が増えたのはベージインページアウトの多発であることも間違いなさそうです。 初期化パラメーターを戻してみましたが、やはり確保する上限が変わるだけで、すべてスワップから使っていました。 つまり、元々、スワップしか使っておらず、SGAを広げたことにより、スワップの利用が増え性能劣化したようです。 (直ディスクアクセスよりはスワップの方が相対的に早いはずですが、無理にスワップを使うよりOSが使うディスクキャッシュが物理メモリなのでそれに任せた方が早いようです) ただ、元々性能が悪くてチューニングでさらに悪化しただけというのが分かっただけで、結局、物理メモリを使わない理由がつかめていません…

intercity123
質問者

補足

OracleDBEEを起動するOSユーザーが所属するdbaグループにMLOCK権限を与えた上で、lock_sgaの初期化パラメーターをtrueにすることにより、起動時にスワップを予約することはなくなりました。 その上で、sgaを12GB、pgaを2400MB落としました。 説明が後になりましたが、何十時間もかかるOracleEBSの重いパッチを適用するためにチューニングをしています。 パッチは起動ワーカー数が指定できそれが16でしたが、IOがボトルネックで16プロセスのほとんどはIOウェイトだったため、それならと12に落としました。 結果、性能は改善されました。 なぜかまだ物理があまってるのにスワップに手を出すため、もう少しチューニングを続けようとは思います。 (ワーカーから外部プログラムを呼び出して別プロセスが起動するようで、その分SGA、PGA以外のメモリを使うようですので、そこも考慮してチューニングします) 困っている他の方がこの質問に行き着いたときのために、顛末を書きました。 ありがとうございました。

関連するQ&A

  • hp-uxについて教えてください

    お願いします。 指数型で出力されているデータを実数型に 変換する方法、コマンドなどありましたら教えてください。 よろしくお願いします。

  • HP-UX11.11のcrontabについて

    crontab -eで編集しようと思うのですが、 下記のようなエラーが出て編集できません。 対処方法をお願いいたします。 "Could not connect to ToolTalk service: TT_ERR_PROCID 渡されたプロセス ID は有効ではありません。"

  • HP-UXのプロセッサ型の調べ方

    HP-UXで itaniumかPA-RISCかを調べたいのですが、 unameコマンドをいろいろ試してもうまくできません。 調査方法を教えて頂けないでしょうか?

  • HP-UX11.00 INSTALLについて

    タイトル通りなのですがHP-UX11.00 INSTALLについて 御教授頂ければと思っております. これからHP-UX11.00をインストールしなければなりません. ただ一度もOSをインストールした事がなくファイルシステム の知識も乏しいため、どのような事に気を付けなければなら ないのかさえ良く分かっていません. このような事には気を付けなければならないというような事 を御教授頂けたらと思っております. どうか宜しくお願い致します.

  • HP-UX情報はどこに

    ネット上には、HP-UXに関する情報がとても少ない ですよね。メーリングリスト等がありましたら教えて 下さい。よろしくお願いします。

  • HP-UXの勉強

    3月初旬よりHP-UXのシステム構築に関わることになりました。 ただ、UNIX系のOS経験としてはFedora Core(自宅学習)ぐらいしかありません。 最低限HP-UXコマンドを、ほほ完璧にしてから業務に望みたいと考えております。 勉強になるHPやHP-UXに近い無料OS(cygwin?)を教えて頂けますでしょうか。 よろしくお願いします。

  • HP-UX MPについて

    MPを使用してサーバにログインしていたのですが、 LANケーブルが抜けてしまい、コンソールが切れてしまいました。 もう1度MPを使用してコンソールを開こうとすると 「Read only - use Ctrl-Ecf for console write access」 と表示されサーバにつなぐことができません。 恐らくサーバ上でセッションが切れていないことが原因かと思いますが、どうにかして再度ログインする方法はないでしょうか。 よろしくお願いします。

  • mysqldが実行できない

    mySQLが起動しなくて困っています。環境はwindows7です。 以下にエラーまでの手順を書かせていただきます。 (1)コマンドラインでmysqldを実行する (2)ログファイルにエラーをはいて終了する。 以下にエラーログを貼り付けさせていただきます。また簡単なコメントも付加させていただきます。 120123 9:22:02 [Note] Plugin 'FEDERATED' is disabled. MySQL: Table 'mysql.plugin' doesn't exist ・・・(1) 120123 9:22:02 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. ・・・(2) 120123 9:22:02 InnoDB: The InnoDB memory heap is disabled 120123 9:22:02 InnoDB: Mutexes and rw_locks use Windows interlocked functions 120123 9:22:02 InnoDB: Compressed tables use zlib 1.2.3 120123 9:22:02 InnoDB: Initializing buffer pool, size = 128.0M 120123 9:22:02 InnoDB: Completed initialization of buffer pool 120123 9:22:02 InnoDB: highest supported file format is Barracuda. 120123 9:22:02 InnoDB: Waiting for the background threads to start 120123 9:22:03 InnoDB: 1.1.8 started; log sequence number 1647042 120123 9:22:03 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist (1)これはデフォルトで出るものらしいので問題ないと思います (2)ここが主な原因だと思われます。また、ここに書かれているmysql_upgradeを実行するためにはmySQLを起動させなければいけないため、実質実行不可能です。 以上です。何かお気づきの点がありましたら助言いただけると幸いです。

    • ベストアンサー
    • MySQL
  • MySQLが起動できない

    さくらのVPSを借りて構築を行っています。 基本的にMySQLだけを導入して運営させていてしばらく問題もなかったのですが、 最近、Perlなどを導入して権限周りに色々悩まされていました。 で、何が原因かはわかっていないのですが、MySQLが起動できなくなりました。 /etc/rc.d/init.d/mysqld restart を行うと、停止は出来るのですが起動に失敗します。 /var/log/mysqld.log を見てみると、 InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: Compressed tables use zlib 1.2.3 InnoDB: Using Linux native AIO InnoDB: Initializing buffer pool, size = 128.0M InnoDB: Completed initialization of buffer pool InnoDB: highest supported file format is Barracuda. InnoDB: Waiting for the background threads to start InnoDB: 1.1.8 started; log sequence number 1595675 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28) [ERROR] Can't start server: can't create PID file: No space left on device mysqld_safe Number of processes running now: 0 mysqld_safe mysqld restarted [Note] Plugin 'FEDERATED' is disabled. と書かれており、権限で起動が出来なくなってるのかと思い、 ls -ld /var/run/mysqld/ で調べてみると、 drwxr-xr-x 2 mysql mysql 4096 11月 1 23:52 /var/run/mysqld/ と、MySQLをインストールした時と同様に、ユーザーはmysqlのままでした。 一応、chown -R mysql:mysql /var/run/mysqld/ でもう一度設定しなおして再起動を試みましたが、起動のみやはり失敗して、同じエラーログとなっています。 Apacheの起動・停止は問題ありません。 OSはCentos5.7でApache2.2ですが、どうも権限周りの設定が良くわかっておりません。 どうにか再インストール無しでMySQLを起動させたいのですが、ご教示頂けますと幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • MySQL 肥大化したテーブルへのINSERT速度

    タイトルの件について、分かる方おりましたらどなたかご教授ください。 [DBサーバ] Linux CentOS 6.4 CPU Xeon core4 SSD 250GB RAM 32GB バージョン情報 MySQL 5.5 tomcat 6 JDK 6 会員データをCSVから大量にUSERテーブルへINSERTする処理を行っています。 また、それに関連するデータも同時にINSERTをします。 (USER_ID を持っている SERVICE_POINTテーブルやADDRESSテーブル) 処理の流れとしては以下となります。 (1) 会員情報の入ったCSVファイルをサーバへアップロード (2) 1でアップロードしたCSVファイルを○○○○件毎に一時ファイルに切り分ける ~~ ここからバックグラウンドで実行 ~~ (3) 2で切り分けたファイルをループで回しながら、メアドの重複やフォーマットエラーなどを判定する (4) 3でエラーがあれば即座にERRORSテーブルにエラー詳細をINSERTし、コミット&continue; (5) 3でエラーがなければUSERテーブル・SERVICE_POINTテーブル・ADDRESSテーブルへINSERT処理 (6) その他関連するテーブルへUPDATE処理 (7) 3に戻る ストレージエンジンは全てInnoDBです。 my.cnfのInnoDBの設定は以下の通りです。 innodb-buffer-pool-size = 24G innodb-log-buffer-size = 8M innodb-log-file-size = 1024M innodb_log_files_in_group = 3 innodb_fast_shutdown = 0 innodb_data_file_path = ibdata1:10M:autoextend innodb_file_io_threads = 4 innodb_change_buffering = all innodb_thread_concurrency = 16 innodb_flush_log_at_trx_commit = 2 innodb_max_dirty_pages_pct = 90 innodb_flush_method = O_DIRECT innodb_lock_wait_timeout = 120 innodb_additional_mem_pool_size = 128M innodb_file_format = Barracuda innodb_file_per_table = 1 なお、ERRORSテーブルのINSERTは非常に速いです。 会員数が全くない状態だとスムーズに登録されていくのですが (1秒に15件程度) テーブルが肥大化して20万件を超えると1秒に1件ほどしかINSERTされません。 この速度を少しでも速くしたいなと思っています。 1件ずつコミットしているのには理由があります。 ただ、1000件ずつコミットしても速度はほぼ変わりませんでした。 こういう場合、やはりパーティショニングを検討しなければならないでしょうか。 よろしければどなたかご教授ください。 以上、よろしくお願いいたします。

    • ベストアンサー
    • MySQL