問題タブ [aio]

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.

0 投票する
0 に答える
1597 参照

mysql - mysqlクラッシュウィンドウaioは操作を続行できません

今日、mysql 5.5.20 wamp のインストールがランダムにクラッシュしました。

InnoDB: File operation call: 'Windows aio' で失敗したようです。InnoDB: 操作を続行できません。

私は実行mysqlcheck -c -u root -p --all-databasesしましたが、すべてが正常に表示されます。

この問題のトラブルシューティングを行うにはどうすればよいですか? Windows Server 2008 を実行しています

エラーダンプは以下です

0 投票する
1 に答える
362 参照

c++ - io_submit API を使用して pwrite リクエストを送信すると、pread リクエストを送信するよりも遅いのはなぜですか?

ディスクから大量のデータを読み取り、大量の書き込みも行うアプリケーションがあります。I/O パフォーマンスを向上させるためにダイレクト io を使用しようとしています。

現在libaio、読み取りと書き込みの両方で非同期 IO を実装するために使用しています。暫定的な結果では、読解段階では改善が見られますが、執筆段階では大幅な低下が見られます。

次にstrace、実行時の動作をキャプチャするために使用しました。これが読み取り段階のログです (関連のないログをいくつか削除しました)。

そして、ここに書き込み段階のログがあります:

一般に、同じio_submitAPI でもさまざまな時間がかかります。一度に 16 の読み取り要求を送信しても、1 つの書き込み要求を送信するよりも高速です。

それで、それは正しいですか?書き込みステージを最適化するにはどうすればよいですか?

0 投票する
2 に答える
450 参照

asynchronous - aio_write() が間違った動作をするのはなぜですか?

aio_write を使用して 2 つのファイルを書き込みたいとします。

32KBのバッファを使用し、1ファイルに対してaio_writeを2048回繰り返します。(ファイルサイズは64MB)

ただし、結果は 64MB ではなく、サイズは 64MB + 32KB になりました。

また、ファイルがガベージで書き込まれることもあります。ファイルに「A」を記入したい。

私を助けてください。

0 投票する
0 に答える
78 参照

c - aioのメモリ使用量が多い

aio でテスト プログラムを書いているのですが、データを書き込むメイン プロセスが終了しても、プロセスのメモリ使用量がまったく下がらないことがわかりました。私のプログラムの問題、または aio キャッシュに関するヒントを教えてください。

私のプログラム:

メモリ使用量は 4G (場合によっては 3G、変更される場合もあります) を超えますが、関数mallocfree関数は両方とも 10,000,000 回実行されるため、メモリ リークの問題はないと思います。

0 投票する
1 に答える
246 参照

c - 大きなファイルに対する aio_write

sendfile(2)と を使用して、本質的に の機能を非同期的に模倣しようとしてaio_read(3)aio_write(3)ます。

大きな (> 150k) ファイルのテストを除いて、すべて正常に動作しているようです。

struct io_request転送を追跡するために使用している単純なものがあります。

まず、aio_read()呼び出しを作成します。

その後、IO_READ_SIGNALハンドラーにキャプチャされます。

ioreq->aiocbp->aio_bufハンドラー内では、大きなファイルであっても、内容が完全であることが確認できます。

後で、ハンドラーaio_write()にキャプチャされます。IO_WRITE_SIGNAL

この時点aio_write()で完了しているはずです。戻り値を確認し、それに応じて行動します。どちらの呼び出しも、適切なバイト数が書き込まれ、書き込み中にエラーが発生しなかったことを報告します。

より大きなアプリケーションは HTTP サーバーです。この問題が発生するのは、リモート クライアントが .csv に追いつくのに十分な速さで読み取ることができないためだと推測しますaio_write()sendfile()これを実装したときsendfile()、ファイル転送を完了するために複数回呼び出す必要がありました。

いくつかの直接的な質問:

  • が問題を報告しないaio_return()のはなぜですか?aio_error()
  • この動作を修正するにはどうすればよいですか?
  • バッファリングする方法はありますaio_write()か? に渡されたn_bytes内部のキャッピングを考えていて、内部から複数回呼び出すだけでした。struct aiocbaio_write()aio_write()aio_write_handler()

ご協力いただきありがとうございます!

0 投票する
2 に答える
5338 参照

ubuntu - nginxのコンパイル中にAIOが見つかりません

ubuntu で nginx をコンパイルしようとしていますが、次の構成パラメーターを使用しています。

今、コンパイルしようとすると、次のエラーが表示されます。

-with-cc-opt 行を削除すると、このエラーは発生せず、AIO が見つかります。libaio1 と libaio-dev をインストールしているので、ライブラリはそこにありますが、それでもこのエラーが発生します。それを理解するのを手伝ってくれませんか。ティア。

0 投票する
1 に答える
366 参照

linux - 実装が epoll(synchronous) に基づいている場合、boost::aio が非同期である理由

私たちは知っています:

(1) epoll は、ユーザー クエリ/システム通知に基づいて同期的です。while ループを使用して、起動されたすべての fd を呼び出します。

(2) boost::asio は「非同期」であると宣言していますが、Linux での実装は epoll を使用しています。

私の質問は、「syn」システムコールを使用して「asyn」を実装するにはどうすればよいですか? カーネル/システムでサポートされている aio インターフェイスを使用しない限り、そうですか?

私の混乱を正すのを手伝ってください。ありがとう!

0 投票する
1 に答える
484 参照

c - シリアルポートを非同期で「開く」および「閉じる」方法は?

シリアル ポートを非同期で使用しようとしています。selectpoll、またはepollwithを使用して、O_NONBLOCK非同期の読み取りと書き込みを行うことができます。しかし、openとはcloseどうでしょうか。

closeブロックを 1 秒以上見ました。