問題タブ [procfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 書き込み操作はどこから行われますか?
データベースでいくつかの実験を行います。この場合、すべてのクエリは、TPCH ベンチマークのテーブルの 1 つからすべてを選択します ( select * from table;
)。各クエリの前後に parse/proc/[pid]/io
します。[pid] はデータベースのプロセスです。これらの値の違いから、クエリの IO がわかります。これは MySQL の典型的な出力です (秒、MB):
WCHAR
(write char) 値はどこから来るのだろうか。私のクエリは、「何かを書き込む」のではなく「すべてを読み取る」(「WRITE_BYTES」がnullであるため、実際にはディスク書き込みはなく、キャッシュ/バッファに書き込みますか?)。ここで何が恋しいですか?
java - スレッドの値をときどき覗くにはどうすればよいですか?
から情報を読み取る Java の監視クライアントを投影しています/proc
。メインクラスMonitoringClient
とProcParser
クラスがあります。私のProcParser
拡張しThread
ます。
ProcParser
多くの (CPU、メモリ、ディスク、ネットワークの 4 つ)オブジェクトをインスタンス化し、コンストラクターで測定したいコンポーネントの 1 つを渡すのは良い方法だと思いました。次に、run メソッドで、then を切り替えます。各オブジェクトは、そのうちの 1 つを解析します。コードは次のようになります。
収集された値をときどき確認するにはどうすればよいですか? また、スレッド (メイン コンポーネントごとに 1 つ) を作成する方法は、Java スレッディングの観点から良いアプローチですか? 前もって感謝します。
ProcParser 内でメソッドを実行します。
linux - RCHAR には READ_BYTES (proc//io)?
データベースサーバーのPIDであるproc/<pid>/io
SQLクエリのIOアクティビティを測定するために読みました。<pid>
各クエリの前後の値を読み取って差を計算し、リクエストによって読み取りおよび/または書き込みが発生したバイト数を取得します。
私が知る限り、フィールドREAD_BYTES
は実際のディスク IO をカウントしRCHAR
ますが、Linux ページ キャッシュによって満たされる可能性のある読み取りなど、さらに多くのものが含まれます (明確にするために、/proc/[pid]/io のカウンターの理解を参照してください )。RCHAR
これは、以上の値になるはずの仮定につながりますREAD_BYTES
が、私の結果はこの仮定と矛盾しています。
Infobright ICE で取得した結果のマイナー ブロックまたはページ オーバーヘッドを想像できます (値は MB です)。
しかし、MonetDB の IO カウンターを完全に理解できません (値は MB です)。
RCHAR
を含むという仮定は間違っていますREAD_BYTES
か? MonetDB が使用できるカーネル カウンターをだます方法はありますか? ここで何が起こっているのですか?
各クエリの前に、ページ キャッシュをクリアし、データベース サーバーを再起動することを追加する場合があります。私は Ubuntu 11.10 を使用しており、カーネル 3.0.0-15-generic を実行しています。
module - カーネルモジュールの proc/meminfo の内容を表示するには?
現在、printk を使用して proc/meminfo (具体的には SwapTotal) の特定の内容をカーネルに出力するカーネル モジュールの作成に取り組んでいます。残念ながら、ネット上のすべてのガイドは、独自の procfs ファイルを開く方法を教えてくれます。proc/meminfo の proc_read を変更して、SwapTotal コンポーネントのみを表示することはできますか? ありがとう!
linux - Linux カーネル Procfs 複数の読み取り/書き込み
Linux カーネルは procfs への複数の読み取り/書き込みをどのように処理しますか? たとえば、2 つのプロセスが procfs に同時に書き込みを行う場合、1 つのプロセスがキューに入れられますか (つまり、カーネル トラップが実際にプロセスの 1 つをブロックします)、またはコアごとにカーネル スレッドが実行されますか?
問題は、関数内で使用されるバッファー (グローバル空間に対して静的) がある場合、それを保護する必要があるか、またはコードが順次実行されるかということです。
multithreading - スレッド情報の検索
システムで実行されているプロセスと、これらのプロセスに属するスレッドのリストがあります。特定のスレッドに関する完全な情報を取得する方法があるかどうかを知りたいです。たとえば、優先度、実行する機能などです。
bash - プロセスの環境変数の現在の値
環境変数を bash プロセスから設定し、別のプロセスから読み取る方法があるかどうか疑問に思っていました。
環境変数の値は(継承を除いて)プロセスに対してローカルであるため、端末で実行export FOO="bar"
して別の端末から読み取ることはできません。私はそれからそれらを通過させようとしていまし/proc/environ
たが、これは私が得たものです:
プロセスが開始されたときにその環境変数が持っていた値を取得できるようです。
現在の価値はどうですか?
c++ - procf/を使用してプロセスステータスを知る/状態
Solarisに取り組んでいます。
/proc/<PID>/status
実行中のプロセスがある場合、プロセスIDであると呼ばれるファイルがあり、その中に<PID>
はと呼ばれるフィールドが含まれていることを私は知っていますstate
。
例として、シェルプロセスを使用しました。
プロセスIDは18671です。
その情報を抽出するための簡単なCプログラムを作成しました。
出力は生成されません。
proc/<pid>/status
procfsのオンライン資料には、猫を飼ってプロセスの状態を確認するだけでよいと書かれています。
しかし、私の場合、それはバイナリファイルです。私はそれがバイナリであるとどこにも言及されているのを見たことがありません。
単純なCプログラムを使用して現在のプロセスの状態を取得する方法はありますか?
C++ソリューションも受け入れられます。
linux - Python 3 でソケットと inode を指定してプロセス ID を見つける
/proc/net/tcp は、ソケットのローカル アドレス、ポート、および inode 番号 (たとえば、0.0.0.0:5432 および 9289) を提供します。
上記の情報を考慮して、特定のプロセスの PID を見つけたいと思います。
/proc 内のすべての番号付きフォルダーを開き、"$ sudo ls -l /proc/*/fd/ 2>/dev/null | grep socket" のようなシェル コマンドを使用して、一致するソケット/i ノード番号についてシンボリック リンクをチェックすることができます。ただし、特定のシステムのプロセスの 5% 未満が TCP ソケットを開いているため、これは必要以上に計算コストがかかるようです。
特定のソケットを開いた PID を見つける最も効率的な方法は何ですか? 私は標準ライブラリを使用したいと思っており、現在 Python 3.2.3 で開発しています。
編集:以下の回答にコード サンプルが含まれるようになったため、質問からコード サンプルを削除しました。