問題タブ [cpu-usage]
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 - MySQL クエリ メモリ/CPU コストの計算方法
特定の MySQL クエリのプロセッサとメモリのコストを計算する方法/ツール/テクニックはありますか?
webserver - Web開発に関するいくつかの基本的ですが重要な質問はありますか?
私はこれまで、PHP、Python、Javaを使用していくつかのWebベースのアプリケーションを開発してきました。しかし、いくつかの基本的ではあるが非常に重要な質問はまだ私の知識を超えているので、皆さんからの助けと説明を得るためにこの投稿をしました。
バックエンド言語としてプログラミング言語(PHP / Python / .Net / Javaなど)を使用し、アプリケーションをWebサーバー(apache / lighttpd / nginx / IISなど)でデプロイするとします。そして、時間Tで、私のページの1つが異なるユーザーから100の同時リクエストを受け取ったとします。だから私の質問は:
- 私のWebサーバーはこのような100の同時リクエストをどのように処理しますか?Webサーバーはリクエストごとに1つのプロセス/スレッドを生成しますか?(はいの場合、プロセスまたはスレッド?)
- バックエンド言語のインタプリタはどのように機能しますか?リクエストをどのように処理し、適切なhtmlを生成しますか?インタプリタはリクエストごとにプロセス/スレッドを生成しますか?(はいの場合、プロセスまたはスレッド?)
- インタプリタがリクエストごとにプロセス/スレッドを生成する場合、これらのプロセス(スレッド)はどうですか?彼らはいくつかのコードスペースを共有しますか?彼らはお互いにコミュニケーションを取りますか?バックエンドコードでグローバル変数を処理する方法は?または、それらは独立したプロセス(スレッド)ですか?プロセス/スレッドの期間はどのくらいですか?リクエストが処理されてレスポンスが返されると、それらは破棄されますか?
- Webサーバーが100の同時リクエストしかサポートできないが、現在は1000の同時リクエストを受け取ったとします。そのような状況にどのように対処しますか?それらをキューのように処理し、サーバーが使用可能になったときに要求を処理しますか?または他のアプローチ?
- 最近、コメットに関する記事をいくつか読んだ。そして、長い接続は、リアルタイムのマルチユーザーのユースケースを処理するための良い方法かもしれないことを発見しました。では、長い接続はどうですか?これは特定のWebサーバーの機能ですか、それともすべてのWebサーバーで使用できますか?長い接続には、長い間存在するインタプリタプロセスが必要になりますか?
編集:最近、CGIとfastcgiに関するいくつかの記事を読みました。これにより、fastcgiのアプローチがhanldeリクエストへの典型的なアプローチであることがわかります。
プロトコルは、複数の独立したFastCGI要求間の単一のトランスポート接続を多重化します。これは、イベント駆動型またはマルチスレッドのプログラミング手法を使用して同時リクエストを処理できるアプリケーションをサポートします。
複数のリクエストを処理でき、マルチスレッド技術で実装できる接続について言及したfastcgi仕様から引用。この接続はプロセスとして扱うことができ、リクエストごとに複数のスレッドを生成できるのではないかと思います。これが本当なら、私は各スレッドで共有リソースを処理する方法についてもっと混乱しますか?
PSは、投稿を複数の投稿に分割するようアドバイスしてくれたThomasに感謝しますが、質問は関連しているので、グループ化する方がよいと思います。
S.Lottのすばらしい回答に感謝しますが、各質問に対する回答の中には、短すぎるか、まったく取り上げられていないものもあります。
みんなの答えに感謝します。それは私を真実に近づけます。
perl - perl スクリプトの CPU 使用率を制御しますか?
Perl スクリプトからの複数回の反復で基準に基づいて多くのファイル検索を行っていますが、CPU 時間が 100% 使用されているようです。スクリプトの CPU 使用率を制御する方法はありますか? スクリプトに空の睡眠サイクルを入れることについてどこかで読みました。しかし、これを行う方法がわかりません。
c - CPU-コアスレッド分類機能
プロセス間の超大量のメッセージ配信のためのマルチスレッド共有メモリメッセージングシステムを作成します。メッセージは、Webサーバーのワーカースレッドから発信されます。同じCPU共有をコアとするCPUキャッシュの局所性を活用したいと思います。そのため、このIPCシステムの受信側でワーカースレッドをウェイクアップするときに、同じCPUでスレッドをウェイクアップします。
Linux(一般的にはPOSIX)とWindowsが必要です。API呼び出しとビットマスキングを使用して、実行中のスレッドIDを分類できるようにする情報を抽出します。このスレッドのコンテキストから次の構造体を使用します。 :
両方のプラットフォームの機能が高く評価されます。これがシステムコール、つまりコンテキストスイッチなしで実行できることを望んでいます。
- 編集 -
現在はx86に焦点を当てていますが、他のアーキテクチャも同様に役立つでしょう。
excel - RDPを介してExcelスプレッドシートを監視すると遅くなりますか?
多くの計算を行い、スプレッドシートへの描画/書き込みをあまり行わない大規模なスプレッドシートがあります
私の質問は次のとおりです。RDPを介して実行されている間にスプレッドシートを監視すると、実際にこれが遅くなりますか?
別の言い方をすれば、rdpが切断された場合、これにより速度が向上しますか?
java - Java CPU使用率の監視
純粋な Java を使用して CPU 使用率を監視する方法はありますか?
cpu-usage - CPU 時間から CPU 使用率に移動する方法は?
自分のアプリケーションで暴走したスレッドを認識し、マシンにアクセスできなくなる前に完全に閉じようとしています。
ただし、スレッドの CPU 時間しか取得できません。これは、使用している API の制限です。そのデータから CPU 使用率を評価する方法はありますか?
リアルタイムと比較することを考えていましたが、近い場合は、そのスレッドが CPU に負荷をかけすぎています。そのヒューリスティックについてどう思いますか、うまくいきますか?
c++ - スレッドを遅くする最良の方法は? Sleep() を使用しても問題ありませんか?
私は、非常に重い CPU 作業 (すべて数学と計算) を実行する C++ ライブラリを作成しました。独自のデバイスに任せると、利用可能なすべての CPU リソースの 100% を簡単に消費します (利用可能な論理リソースの数までマルチスレッド化されています)。マシン上のコア)。
そのため、ライブラリを使用するソフトウェアが呼び出すことになっているメインの計算ループ内にコールバックがあります。
コールバックで、クライアントは Sleep(x) を呼び出してスレッドを遅くします。
元々、クライアント側のコードは固定の Sleep(100) 呼び出しでしたが、一部のマシンは他のマシンよりも速く計算を終了するため、信頼性の低いパフォーマンスが低下しましたが、スリープはすべてのマシンで同じです。したがって、クライアントはシステム時間をチェックし、1 秒以上 (== 数回の反復) が経過した場合、0.5 秒間スリープします。
これは、スレッドを遅くする許容可能な方法ですか? パフォーマンスを最大化するには、Sleep() の代わりにセマフォ/ミューテックスを使用する必要がありますか? 処理の 1 秒ごとに x ミリ秒のスリープは問題ありませんか、それとも私が気づいていない何か問題がありますか?
私が尋ねた理由は、タスクマンがプロセスが CPU の約 10% を占めていることを示しているにもかかわらず、マシンがまだひどく動かなくなっているからです。私はすでにハードディスクとメモリの競合を無駄に調査したので、スレッドを遅くしている方法がこの問題を引き起こしているのではないかと思っています.
ありがとう!
c - 「top」コマンドのように、CPUごとの統計(system、idle、nice、...)を取得するにはどうすればよいですか?
Linuxでは、CPUごとの統計を取得するために呼び出す「C」APIを知りたいです。
私は自分のアプリについて知っており/proc/loadavg
、アプリ内から読み取ることができますが、これはシステム全体の負荷平均であり、CPUごとの情報ではありません。個々のCPUまたはコアを区別したいと思います。
これを行うアプリケーションの例として、実行top
して「1」を押すと、次のような4つまたは8つのプロセッサ/コアが表示されます。
私はしようとしましstrace top
たが、これはネズミの巣につながりました。