問題タブ [sysctl]
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.
c - sysctlがMacOSXでE_INVALを生成するのはなぜですか?
以下は、sysctlを使用してPID50の特定のプロセスのargvを取得するC/ Obj-Cコードの簡略化された(エラー/ nullチェックは省略)スニペットです。
sysctlへの最初の呼び出し(argv文字列配列のサイズを決定するため)は成功します。返される長さは約1600で、予想よりも大きくなりますが、不合理ではないと思います。Mallocは成功します。sysctlへの2番目の呼び出しは-1を返し、errnoを22、E_INVALに設定します。
私はこの質問からのコードを含む他のコードを見てきましたが、私の問題はわかりません。私は何が欠けていますか?
linux - UDP バッファの単位は何ですか? sysctl パラメータのドキュメントはどこにありますか?
x86_64 RedHat 5.3 (カーネル 2.6.18) を実行しており、特に sysctl -a から net.core.rmem_max を見て、UDP バッファーを設定しようとしています。受信アプリケーションは時々パケットを見逃すことがありますが、それが何を意味するかに応じて、バッファはすでに十分に大きいと思います:
この設定の単位は何ですか? ビット、バイト、パケット、またはページ? ビットまたはバイトの場合、データグラム/ペイロード (100 バイトなど) またはネットワーク MTU サイズ (~1500 バイト) からですか? ページの場合、ページ サイズは何バイトですか?
これは、システムごと、物理デバイス (NIC) ごと、仮想デバイス (VLAN) ごと、プロセスごと、スレッドごと、ソケットごと、マルチキャスト グループごとの最大値ですか?
たとえば、データがメッセージあたり 100 バイトで、各ネットワーク パケットが 2 つのメッセージを保持し、ソケットあたり 50,000 メッセージをバッファできるようにしたい場合、4 つのスレッドのそれぞれでスレッドあたり 3 つのソケットを開きます。net.core.rmem_max の大きさはどのくらいですか? 同様に、アプリケーション内でソケット オプションを設定すると、単位はペイロード バイトなので、この場合、各ソケットで 5000000 になりますか?
最後に、一般的に、sysctl -a で表示されるパラメータの単位の詳細を見つけるにはどうすればよいでしょうか? 同様のユニットと、net.core.netdev_max_backlog や net.ipv4.igmp_max_memberships などの他のパラメーターに関する X ごとの質問があります。
ありがとうございました。
objective-c - ローカル トラフィックを除くネットワーク使用状況の監視
ネットワークの使用状況を監視するアプリに取り組んでいます。ただし、これを行う多くの方法では、ローカル トラフィック (Time Machine など) を除外できないことに気付きました。
ローカル トラフィックを除外する方法を探しており、インターネットと直接やり取りする使用状況のみを監視しています。
更新:返信ありがとうございます。トラフィックがローカルかどうかを確認する方法はわかりましたが、合計の入出力バイト数を計算する方法はまだわかりません (以前に詳しく説明していなかったら申し訳ありません)。一定期間内、または OS の起動以降に、ローカル (またはインターネット) で送受信されたバイト数を知る方法がありません。この問題は、OS の実行中にプロセスが起動または強制終了されるという事実によってさらに複雑になります。
Linux/Mac OSX でネットワーク アダプタの統計情報を取得する方法は? 総使用量を合計する興味深い方法を提供しますが、合計される使用量はインターフェース統計であるため、役に立ちません。
更新 2 : これに対する最終的な解決策を投稿しました。少し下にスクロールしてご覧ください。
java - OS X 10.6 で JVM によって作成できるスレッドの最大数を変更する方法はありますか?
このスタックオーバーフローの投稿によると、Mac OS X 10.6 では、JVM または任意のアプリケーションで作成できるスレッド数に制限があります。端末で次のコマンドを実行すると、制限を表示できます。
と
systctlは、Linux ではこれらの値をオーバーライドできますが、OS X ではオーバーライドできません。このマニュアル ページによると、これらのフィールドは変更できません。
私の質問は、OS X 10.6 で、作成できるスレッド数の制限をオーバーライドする別の方法はありますか?
macos - MAC OS X の NETLINK Sockets API に相当するものを知っている人はいますか?
MAC OS X の NETLINK Sockets API に相当するものを知っている人はいますか? Linux アプリケーションを MAC OS X に移植しようとしていますが、MACOS で同様のものを見つけることができませんでした。
アプリケーションでネットワーク アダプタへの非同期アクセスを提供する必要があります。
一定の秒数ごとに構成の変更などについてネットワークアダプターをポーリングすることは、私にとって便利なソリューションではありません。NETLINK ソケット API は、何か興味深いことが起こったときにのみ通知を受信する方法を提供します。
NETLINK は Linux カーネルとユーザー空間の間で通信するための Linux 固有のものであることは知っていますが、MACOS の下に NETLINK のようなものが存在する可能性があります。
カーネルと通信する唯一のツールが表示されます – sysctl()
誰か情報を持っていますか?
linux - MAC OS X で最大の TCP 受信/送信ウィンドウを取得する方法は?
MAC OS X で最大の TCP 受信/送信ウィンドウを取得する方法は?
Linux には 2 つの ctl があります。/proc/sys/net/core/rmem_max - 最大 TCP 受信ウィンドウ (NET_CORE_RMEM_MAX) /proc/sys/net/core/wmem_max - 最大 TCP 送信ウィンドウ (NET_CORE_WMEM_MAX)
しかし、Mac OS でこれらのパラメータを取得する方法が見つかりませんでした。
誰か知っていますか?
MAC OS X で次の ctl を見つけました: net.inet.tcp.recvspace、net.inet.tcp.sendspace、kern.ipc.maxsockbuf
recvspace+sendspace を maxsockbuf より大きくすることはできないようです。ここでそれについて読みました: http://www.macgeekery.com/tips/configuration/mac_os_x_network_tuning_guide_revisited
linux - 接続ごとに輻輳制御アルゴリズムを変更する
現在、Linux のコマンド「sysctl」は、システム全体の輻輳制御アルゴリズムをグローバルに変更します。ただし、TCP ウィンドウ サイズやその他の同様のパラメータが変化する輻輳制御は、通常、TCP 接続ごとに行われます。だから私の質問は:
- TCP 接続ごとに使用されている輻輳制御アルゴリズムを変更する方法はありますか?
それとも、ここで些細なことを見逃していますか?もしそうなら、それは何ですか?
objective-c - NSAutoreleasePoolのsysctl->バスエラーとsegfaults
私を助けようとしているすべての人に事前に感謝します。ここで大きな問題が発生しています。sysctlに関するサンプルコードをいくつか見つけて拡張し、ネットワークインターフェイスに入力/出力データを照会できるようにしました。このコードをmain()で直接(NSAutoreleasePoolなしで)実行すると、すべてが正常に機能します。ただし、クラスに追加して実行すると、バスエラーとsegfaultが発生します。NSAutoreleasePoolsまで問題を追跡しました。誰か助けてもらえますか?(信じられない場合は、NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];をコードの前に配置し、すべてをmain()に配置してください)
linux-kernel - 自分のサーバーのニーズに応じて、最適なulimitとfs.file-maxの値を「計算」する必要があります
自分のサーバーのニーズに応じて、最適なulimitとfs.file-maxの値を「計算」する必要があります。「さまざまなLinuxディストリビューションでこれらの制限を設定する方法」の質問と競合しないでください。
私は尋ねています:
- ulimitに使用されるパラメーターを詳細に説明するための良いガイドはありますか?(> 2.6シリーズカーネル)
- fs.file-maxの使用状況メトリックを表示するための優れたガイドはありますか?
実際、ネット上で見つけることができる古いリファレンスがいくつかあります。http: //www.faqs.org/docs/securing/chap6sec72.html 「RAM4Mごとに256のような妥当なもの:つまり、128MBのマシンの場合RAMの場合は、8192-128 / 4 = 32 32 * 256=8192"に設定します。
最新のリファレンスをいただければ幸いです。
ios4 - iOS4 で特定のプロセスの CPU 使用率を取得する
Apple SDK を使用して iOS4 で実行されているバックグラウンド アプリケーションから、さまざまなプロセス (cpu ticks) の CPU 使用率を取得しようとしています。これはユーザーの同意を得て完全に行われるため、非倫理的なことは何もありません。
sysctl を使用してプロセス リストを取得しましたが、プロセスの CPU ティックは常にデバイスから 0 として返されます。または、フォアグラウンド プロセスを探し、数秒ごとにポーリングしてアプリケーションの使用状況を取得しようとしました。ただし、プロセスがフォアグラウンドで実行されているかバックグラウンドで実行されているかを示す API/フラグはありません。プロセスのメモリ消費量を取得し、バックグラウンドで実行されているかどうかを確認するためにイベントをチェックしました (バックグラウンドの場合、メモリは変動しません)。ただし、API proc_pidinfo は非公開であり、Apple はアプリを拒否しました。
そのようなトピックに関連する投稿を見たことがありますが、明確な答えは得られませんでした.
サンドボックスが他のアプリに関する情報を取得できないことは承知しています(sysctlがPID、プロセス名、開始時間を提供するため、これは真実ではありません)。しかし、アプリストアで Zokem の MyLife というアプリケーションを見たところ、そのような情報が報告されました。それらは秒単位まで正確です。この情報を格納するシステム ログまたは DB があるかどうか疑問に思っていました。
アプリケーションの使用時間を取得するアイデアはありますか?