プロセス の検索結果:
…ラッチを確保しているプロセス1が CPU1 で実行中の間、ラッチを取得したいプロセス2が CPU2 でスピンするというイメージ。 スリープよりスピンのほうが処理コストが低いためスピンする。スリープするとコンテキストスイッチが発生するので処理コストが高い。 スリープ Timeout 一定時間経過するとOSが起こしてくれるようアラームをセットしてからスリープする。 最初は0.1秒スリープし、2回目以降は「前回スリープ時間 × 2」というアルゴリズムでスリープ時間が長くなっていく。…
…、DBインスタンスのプロセスから見るとデータファイルなどは存在せず、たぶんASMから「このキャラクタデバイスのここからここまでを読め」とか教えてもらってI/Oを行っているんじゃないかと思う。posted at 12:55:20@yoheia そして厳密には今ASMでサポートしているのはraw deviceではなくblock deviceです。posted at 12:56:18@yoheia あ、ちょっと訂正。サポートposted at 12:59:11@yoheia という…
…racle の多数のプロセスはどのように協調動作しているか。 Oracle のプロセスの協調動作に関連する OS、Oracle の設定。 ボトルネックを探すときに見るべき情報。 要約 Oracle の多数のプロセスはどのように協調動作しているか 主にセマフォを使っている。 1プロセスにつき1つのセマフォを使う。 プロセスは以下の場合、セマフォを使って待機する。 使いたいリソースを誰かが使っている。 他のプロセスが処理中の前提タスクが終わっていない。 やることがない。 待機中の…
…役に立つ。例えば、データベースが止まったとか、ハングしたとか、ORA-0600 でクラッシュしてるとか。このツールを使うには管理者権限が必要。 oradebug にはたくさんの機能があるけど、特に役に立つのは、 別のユーザセッションに対してSQLトレースを有効化/無効化する プロセスを一時停止する 共有メモリ/セマフォの情報を見る トレースファイルを閉じる。新しいトレースファイルが生成されるようにするため。 内部のデータ構造を変更したりダンプしたりする プロセスを起こす など
…、sqlplus のプロセスとサーバープロセスがプロセス間通信し、サーバープロセスとリスナープロセスがプロセス間通信し、リスナーが extproc を fork する。 サーバープロセスとリスナープロセスの間のプロセス間通信が正常にできていないのが原因。 従って、チェックポイントは、リスナーが起動しているか、listener.ora、tnsnames.ora の設定が正しいかといったあたりになる。Oracle のバージョンにもよるが 文字数・スペース・改行などが原因になること…
使い方 プロセスIDを確認する。 % ps -ef ... oracle 1503 1 0 13:49:42 ? 0:00 oracleorcl (LOCAL=NO) ... スタックトレースを取得する。 % pstack 1503 1503: oracleorcl (LOCAL=NO) ffffffff7dcce794 read (e, 10389cc16, 810) 00000001028aca8c snttread (e, 10389cc16, 810, 1038874…
プロセスを一覧表示する。 > tasklist ... notepad.exe 776 Console 0 5,636 K cmd.exe 3936 Console 0 3,052 K tasklist.exe 1584 Console 0 5,160 K プロセスを kill する。 > taskkill /F /IM notepad.exe 成功: プロセス "notepad.exe" (PID 776) は強制終了されました。 こんなんあるんだ。知らんかった。 さっき教…
…ss") '--- プロセスの作成 lngResult = clsProcess.Create(strCommand) Wscript.StdOut.WriteLine strCommand & " :" & lngResult End If 実行してみる host01 から host02 の notepad を実行する。 > hostname host01 >cscript //Nologo xstart.vbs notepad.exe host02 notepad.exe…
…示される。 サーバ・プロセスとバックグラウンド・プロセスの両方が表示される。 [見方] %Total Ela Time: イベントの待機時間 / 合計処理時間 CPU time が上位なほどリソースを有効活用できている。 ただし、CPU time が上位でも下記のような効率の悪いSQLがCPUを過剰に使用している可能性があるので注意。 全表走査している。 最適なインデックスを選択していない。 SQL文の再解析が発生している。 [イベントの種類] db file scatter…
…ンドでない場合、毎回プロセスのフォークがされて実行されるため、findで見つけるファイルが大量の場合、体感速度にまで影響が出るほどの違いが出ます。 どういうことかは、 find . -type f | xargs echo find . -type f | xargs -n 1 echo find . -type f | xargs -n 2 echo 等をやってみると分かり易いのではないかと思います。 xargs がめちゃ便利なのでメモっておく - ablog そこで気にな…
foo.shとbar.shを実行して、 % ls bar.sh foo.sh % ./foo.sh & % ./bar.sh & % jobs [1] - running ./foo.sh [2] + running ./bar.sh kill す。 % ps -ef|perl -lane '/(foo|bar)\.sh/ and kill(SIGKILL, $F[1])' [1] - killed ./foo.sh [2] + killed ./bar.sh foo.sh、…
…りの書き込み件数。 プロセス状況 ps -ef CPUを消費するデータベース以外のプロセス(バックアップ、印刷キューなど)が走っていないか確認する。 ネットワーク状況 netstat -na 時系列のアクティブ・コネクション数の増減は妥当か確認する。 netstat -s 1 60 tcpListenDrop、tcpListenDropQ0、tcpHalfOpenDrop、tcpOutSackRetrans などが発生していないか確認する。 Oracle statspack(…
… 実行待ち行列にあるプロセス。 プロセスには実行可能状態(R)、実行状態(O)、Sleep状態(S)といったステータスがあり、そのうち実行可能状態のプロセス。 実行可能状態はプロセスが実行可能な状態で、OSからプロセスの割り当てを待っている状態。 b: I/O待ちをしているプロセス。 avm: アクティブな仮想メモリ。単位はページ(1ページ: 4096byte) free: 空いている実メモリ。単位はページ(1ページ: 4096byte) pi: ページイン(仮想メモリ→メイ…
Bourne Shell の特殊シェル変数 $! はバックグラウンドで実行された直前のプロセスのプロセス番号を保持している。 $ man sh ... ! The process number of the last background command invoked. ... [参考] http://flex.ee.uec.ac.jp/texi/sh/node30.html#SECTION00044000000000000000
…acle のサーバープロセスの通信相手のIPアドレスとポート番号を調べてみた。 コマンド ps -ef|egrep [o]racleorcl|while read LINE do PID=`echo $LINE|perl -lane 'print $F[1]'` PEER=`pfiles $PID|egrep [p]eername` echo $LINE $PEER done 実行結果 oracle 17067 1 0 7月 28 ? 0:02 oracleorcl (LOC…
Solaris でプロセスについて調べるときに使えるコマンドをメモっておく。 pfiles ptree truss pargs pgrep 上記以外にも、以下のURLにいろいろ載ってる。 http://docs.sun.com/app/docs/doc/819-1210/pfiles-1?a=view
…で動作するいくつかのプロセスと共有(非共有)メモリと物理的ファイルで構成されるアプリケーション。アーキテクチャやメカニズムを理解して、ロジカルに考えシンプルなツールをつかってトラブルシューティングしましょうというお話し。 キーワードだけメモ Prelim Connection (10g以降) oradebug (11g以降) DMA tools (3rd party tools) pstack(Linux) と 実行計画は対応している ORA-1578 DBMS_REPAIR…
… SELECT ename, sal, comm (dbx) print emp_number # 変数の中身を表示する。 emp_number = 0 [参考] http://docs.sun.com/app/docs/doc/805-7883/6j7dojf62?l=ja&a=view monjyu.biz *1:ローカルのOracleインスタンスとプロセス間通信する場合は不要。今回は Oracle Net を使ってリモートデータベースに接続するためにこの変更が必要だった
…CLNTCONN) プロセス定義: キューに何らかのイベントが発生したとき、トリガー機能を使ってアプリケーションを起動することができる。 ログ: キュー・マネージャー毎にとられる。 構成 一次ログ・ファイル 二次ログ・ファイル ログ制御ファイル: ログファイルのサイズ・位置などが記録される。 ロギング方法 循環式ロギング: たぶん、Oracle でいうノーアーカイブ・ログ・モード。 リニア・ロギング: たぶん、Oracle でいうアーカイブ・ログ・モード。 [参考] WebS…
…0 port: 0 おお、でた。 Oracle のサーバー・プロセスが通信時にリスナーと同じポートを使うのか別のポートを使うのか知りたかったんだけど、リスナーと同じポート(1521)使ってるみたい。 ってそらそうか。 いくつもポート使われたら面倒だもんな。 FTP みたいに Firewall とか iptables の設定するときに IP でトラッキングしないといけなくなるもんな。 [参考] netstat でプロセス特定できないの? in Solaris (2) - うほぅ
…ー構成だとサーバー・プロセスのみで処理するけど、共有サーバー構成だとディスパッチャとサーバー・プロセスで処理する(キューを使って中継)のでパフォーマンスは落ちるから。 クライアントとの接続手続き クライアントはリスナーにCONNECTパケットを送る。 リスナーはディスパッチャとDirect Hand-Off接続して、プロセスの初期化情報を渡して、接続をクローズする。 ディスパッチャはリスナーからTCPソケットを継承する。 ディスパッチャからクライアントにRESENDパケットを…
…ナーは専用サーバー・プロセスを開始する。 専用サーバー・プロセスはリスナーから接続要求を継承する。 リスナーと専用サーバー・プロセス間にソケットを継承するためのBequeath接続が確立され、プロセスの初期化情報が渡される。 Bequeath接続がクローズされ、専用サーバー・プロセスにTCPソケットが継承される。 クライアントが専用サーバー・プロセスに直接接続する。 専用サーバー・プロセスからクライアントにRESENDパケットが送信される。 クライアントは専用サーバー・プロセ…
…olaris10 でプロセスIDからリンクしている共有ライブラリを調べる方法をメモ。 pldd 各プロセスにリンクされている (dlopen(3C) を使用して明示的に接続されている共有オブジェクトを含む) 動的ライブラリを表示します。ldd(1) も参照してください。 http://docs.sun.com/app/docs/doc/819-1210/proc-1?l=ja&a=view pldd コマンドで見れるみたい。 試してみる。 $ pldd 1487 1487: …
…い場合)。 サーバープロセスが初期化パラメータファイルをINPUTにして、ファイルを作成しているだけな気がする(当たり前か)。ファイルはSPFILE、パスワードファイル、データベースファイル(制御ファイル、REDOログ、データファイル)。また、データベース作成時の記録がログに出力れる。サーバープロセスってそんなにいろいろなことができるんだろうかと思うけど、たぶん共有ライブラリをロードすればたいがいのことはできるような作りになってるんじゃないかと思う。[仮説] 作業者 sqlp…
…/log リスナーのプロセスIDは 987 か。 リスナープロセスのスタックトレースを表示してみる。 #pstack 987 987: /export/home/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit ----------------- lwp# 1 / thread# 1 -------------------- fdfd8da5 pollsys (817fd28, 3, 0, 0) fdf7f502…
…rOpened2 3プロセスとも、301個目のカーソルをオープンしようとしたところで、ORA-01000 が発生。想定通り。 以下はソースコード。 InfiniteLooperWithCursorOpened2.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; import java.sql.…
…QL領域はサーバー・プロセスのPGA内にあります。ただし、セッションが共有サーバーを介して接続されている場合、プライベートSQL領域の一部はSGA内に保持されます。 メモリー・アーキテクチャ 共有SQL領域とプライベートSQL領域Oracle Databaseでは、実行される各SQL文が、共有SQL領域とプライベートSQL領域によって表されます。Oracle Databaseは、2人のユーザーが同じSQL文を実行する場合にそれを認識し、これらのユーザーのために共有SQL領域を…
…ブ実行用に作成できるプロセスの最大数を指定します。 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-03/initparams.htm#78756 SUBMITプロシージャこのプロシージャは新規ジョブを送信します。順序sys.jobseqからジョブを選択します。構文 DBMS_JOB.SUBMIT ( job OUT BINARY_INTEGER, wha…
…ションIDからOSのプロセスIDを調べるSQLをメモ。 SQL set pagesize 1000 set linesize 200 col spid for a4 col sid for 9999 col serial# for 9999 col username for a10 col program for a30 col machine for a30 col osuser for a10 select proc.spid, ses.sid, ses.serial#,…
…ケーションサーバは1プロセス・マルチスレッドで動作する。 UNIX系OS版のOracleのようにマルチプロセスではない。 Windows版のOracleのようなイメージか。あれはOSから見るとOracle.exeというプロセスが1つだけ動いていて、内部的にスレッドを使って並行処理をしているはず。 ServletはJ2EEアプリケーションサーバの中で1スレッドとして動作する。JSPも実行時はServletとして実行されると聞いた気がする。 ここからStrutsについて お客さん…