並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 22 件 / 22件

新着順 人気順

io_uringの検索結果1 - 22 件 / 22件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

io_uringに関するエントリは22件あります。 linuxLinuxkernel などが関連タグです。 人気エントリには 『ソケットAPIが遅すぎる?新たなio_uringを試す!』などがあります。
  • ソケットAPIが遅すぎる?新たなio_uringを試す!

    新しいAPIが作られるたびに、私たちは、古いAPIを置き換えるだけで高速化という夢をみます。何度夢破れても、高速なAPIが追加されたと聞けば、試さずにはいられませんよね! 今回は、Linuxカーネル5.1で追加されたio_uringを使って、Rustのasyncランタイムを実装し、gRPCサーバのベンチマークを実行してみました。 io_uringとはio_uringは、ファイルシステムとネットワークの非同期I/Oのために開発されました。同期よりも非同期のほうがおしゃれ、そういう雰囲気ありますよね!クラウドネイティブも、非同期にAPIを介して、なんかやってるやつですよね。 io_uringのインターフェイスは、高い性能を目指し、1)アプリケーションとカーネル間でのメモリコピーを避ける、2)複数のI/O要求を一度にカーネルに伝えることができる、という工夫がされています。 下図のように、アプリケ

      ソケットAPIが遅すぎる?新たなio_uringを試す!
    • Rustの非同期ランタイムが多すぎる?io_uringなやつを使おう!

      AWS、Google、Microsoftらが、Rust Foundationを設立し、今やRustでなければクラウドネイティブじゃない、と言っても過言ではありませんよね。クラウドネイティブと言えば、スケーラブルなシステム、Goはgoroutineを標準機能として提供しますが、Rustのasync/awaitは、標準機能に含まれていない外部ライブラリを必要とします。悪いことに、複数のライブラリ(非同期処理ランタイム)が乱立し、APIの互換性もありません。Rustはクラウドネイティブなのだろうか、という疑問を抱きながら、いくつかのランタイムの性能を、いつものgRPCベンチマークで比較してみました。 比較対象数多くのランタイムの中から、前回の記事で試した、Linuxの新しい非同期I/Oインターフェイスのio_uringを利用しているglommioと、普及している思われる、tokio、smol、a

        Rustの非同期ランタイムが多すぎる?io_uringなやつを使おう!
      • How io_uring and eBPF Will Revolutionize Programming in Linux

        Things will never be the same again after the dust settles. And yes, I’m talking about Linux. As I write this, most of the world is in lockdown due to COVID-19. It’s hard to say how things will look when this is over (it will be over, right?), but one thing is for sure: the world is no longer the same. It’s a weird feeling: it’s as if we ended 2019 in one planet and started 2020 in another. While

          How io_uring and eBPF Will Revolutionize Programming in Linux
        • io_uringで高速IO処理(?) | κeenのHappy Hacκing Blog

          κeenです。普段お世話になってるけど使ったことのないAPIを叩いてみよう、ということで io_uring を使ってみます。 io_uringが何なのかは以下の記事が詳しかったです。 Linuxにおける非同期IOの実装について - Qiita ざっくり、io_uringはLinuxで非同期IOをするためのAPIです。 ユーザランドとカーネルランドで2つのキューを共有し、そこを通じて会話をします。 1つのキューはユーザランドからカーネルへのリクエストの提出用、もう1つのキューはカーネルからユーザランドへの完了の通知用です。 また、epollを制御するためにfdもあります。こんなイメージですかね。 user | ^ ^ submit ||| || ||| completion -------|||--fd-|||---------- ||| || ||| v v | kernel それぞれのキ

            io_uringで高速IO処理(?) | κeenのHappy Hacκing Blog
          • How io_uring and eBPF Will Revolutionize Programming in Linux

            Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.

              How io_uring and eBPF Will Revolutionize Programming in Linux
            • io_uringで高速IO処理(!) | κeenのHappy Hacκing Blog

              M.2のNVMe SSD x 4の上にbtrfsでRAID 5を組んだファイルシステム上で実験しており、Linuxカーネルは5.8.0でした。 公平性の調整 ネタバレになるですが、キャッシュの具合やファイルが残ってるかどうかで速度が結構変わるのでベンチマーク後にファイルは削除し、ベンチマークの間に sync() を挟むことでキャッシュの影響をなくすようにしました。 Linuxのアップデート 本件とは別の事情で最新版のLinuxを使う用事が発生したのでLinux 5.11.0を使っています。リリースノートを見るとbtrfsの高速化なども含んでいるので一応ベンチマークを取り直してみます。 name time(ms)

                io_uringで高速IO処理(!) | κeenのHappy Hacκing Blog
              • GitHub - mitchellh/libxev: libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macOS (kqueue), and Wasm + WASI. Available as both a Zig an

                libxev is a cross-platform event loop. libxev provides a unified event loop abstraction for non-blocking IO, timers, signals, events, and more that works on macOS, Windows, Linux, and WebAssembly (browser and WASI). It is written in Zig but exports a C-compatible API (which further makes it compatible with any language out there that can communicate with C APIs). Project Status: 🐲 Unstable, alpha

                  GitHub - mitchellh/libxev: libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macOS (kqueue), and Wasm + WASI. Available as both a Zig an
                • GitHub - bytedance/monoio: Rust async runtime based on io-uring.

                  Monoio is a pure io_uring/epoll/kqueue Rust async runtime. Part of the design has been borrowed from Tokio and Tokio-uring. However, unlike Tokio-uring, Monoio does not run on top of another runtime, rendering it more efficient. Moreover, Monoio is designed with a thread-per-core model in mind. Users do not need to worry about tasks being Send or Sync, as thread local storage can be used safely. I

                    GitHub - bytedance/monoio: Rust async runtime based on io-uring.
                  • io_uringのサンプルを試してみた · hnakamur's blog

                    2020-04-07 はじめに io_uring について以下の素晴らしい入門記事を知ったので試してみたメモです。 io_uring By Example: An Article Series - Unixism io_uring by example: Part 1 - Introduction - Unixism io_uring By Example: Part 2 - Queuing multiple requests - Unixism io_uring By Example: Part 3 - A Web Server with io_uring - Unixism サンプルソースコード shuveb/io_uring-by-example: A companion repository for the io_uring by Example article series RE

                    • Getting Hands-on with io_uring using Go

                      Getting Hands on with io_uring using Go In Linux, system calls (syscalls) are at the heart of everything. They are the primary interface through which an application interacts with the kernel. In Linux, system calls (syscalls) are at the heart of everything. They are the primary interface through which an application interacts with the kernel. Therefore, it is vital that they are fast. And especia

                      • io_uring is not an event system

                        I’ve been hearing about io_uring on and off for the last couple of years. Its a relatively new technology in Linux to allow high-performance IO with very few overheads. Whenever its been mentioned, its usually been presented as a new alternative to select, poll and epoll. This led me to believe that it was just the next iteration of those facilities, which is to say, another facility to inform a p

                          io_uring is not an event system
                        • Missing Manuals - io_uring worker pool

                          Chances are you might have heard of io_uring. It first appeared in Linux 5.1, back in 2019, and was advertised as the new API for asynchronous I/O. Its goal was to be an alternative to the deemed-to-be-broken-beyond-repair AIO, the “old” asynchronous I/O API. Calling io_uring just an asynchronous I/O API doesn’t do it justice, though. Underneath the API calls, io_uring is a full-blown runtime for

                            Missing Manuals - io_uring worker pool
                          • Linux 5.20 To Support Async Buffered Writes For XFS + IO_uring For Big Performance Boost - Phoronix

                            Show Your Support: Did you know that the hundreds of articles written on Phoronix each month are mostly authored by one individual? Phoronix.com doesn't have a whole news room with unlimited resources and relies upon people reading our content without blocking ads and alternatively by people subscribing to Phoronix Premium for our ad-free service with other extra features. Linux 5.20 To Support As

                              Linux 5.20 To Support Async Buffered Writes For XFS + IO_uring For Big Performance Boost - Phoronix
                            • io_uring and networking in 2023

                              As an IO model, io_uring is applicable to both storage and networking applications. In UNIX, it’s often touted that “everything is a file”. And while that is (mostly) true, once you have to do IO to the file, then all files are not created equal and must in fact be treated differently. With its completion model based design, converting storage applications to use io_uring is trivial, and can be do

                                io_uring and networking in 2023
                              • Introducing io_uring_spawn [LWN.net]

                                LWN.net needs you!Without subscribers, LWN would simply not exist. Please consider signing up for a subscription and helping to keep LWN publishing The traditional mechanism for launching a program in a new process on Unix systems—forking and execing—has been with us for decades, but it is not really the most efficient of operations. Various alternatives have been tried along the way but have not

                                • Next magic Linux program to will change the world? Io_uring

                                  Column A few years ago developers knew eBPF as a handy way to build firewalls yet now it's used everywhere for everything. Get ready for io_uring to do the same. Most people don't know the first thing about Linux under the hood. Why should they? Linux, more so than most operating systems, just works. There's no need to poke inside it. But beneath the surface, there are programs such as eBPF that a

                                    Next magic Linux program to will change the world? Io_uring
                                  • GitHub - unum-cloud/ucall: Remote Procedure Calls - 50x lower latency and 70x higher bandwidth than FastAPI, implementing JSON-RPC & 🔜 REST over io_uring and SIMDJSON ☎️

                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                      GitHub - unum-cloud/ucall: Remote Procedure Calls - 50x lower latency and 70x higher bandwidth than FastAPI, implementing JSON-RPC & 🔜 REST over io_uring and SIMDJSON ☎️
                                    • Io uring

                                      A nice io_uring visualization courtesy Donald Hunter Introduced in 2019 (kernel 5.1) by Jens Axboe, io_uring (henceforth uring) is a system for providing the kernel with a schedule of system calls, and receiving the results as they're generated. Whereas epoll and kqueue support multiplexing, where you're told when you can usefully perform a system call using some set of filters, uring allows you t

                                        Io uring
                                      • GitHub - Iceber/iouring-go: Provides easy-to-use async IO interface with io_uring

                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                          GitHub - Iceber/iouring-go: Provides easy-to-use async IO interface with io_uring
                                        • What’s new with io_uring

                                          Jens Axboe Software Engineer What’s new with io_uring FASTER IO WITH A CONSISTENT MODEL? YES PLEASE Quick primer Source: https://medium.com/nttlabs/rust-async-with-io-uring-db3fa2642dd4 System calls io_uring_setup(2) Sets up an io_uring instance, application then mmap(2)’s the SQ and CQ ring memory. Returns a file descriptor, application closes fd when done (or on process exit). io_uring_enter(2)

                                          • Linux 5.11 To Land Optimization That Helps IO_uring Performance - Phoronix

                                            Linux 5.11 To Land Optimization That Helps IO_uring Performance Written by Michael Larabel in Linux Kernel on 30 October 2020 at 12:05 AM EDT. 16 Comments At the start of October we mentioned a kernel optimization that can help IO_uring performance. Now as we approach the end of the month, Linux 5.11 is poised to land the optimization that especially helps out with threaded workloads. The change t

                                              Linux 5.11 To Land Optimization That Helps IO_uring Performance - Phoronix
                                            • Announcing tokio-uring: io-uring support for Tokio | Tokio - An asynchronous Rust runtime

                                              Announcing tokio-uring: io-uring support for TokioJuly 19, 2021 Today, we published the first release of the “tokio-uring” crate, providing support for the io-uring system API on Linux. This release provides asynchronous File operations, and we will be adding support for more operations in subsequent releases. To use tokio-uring, first, add a dependency on the crate: tokio-uring = "0.1.0" Then, st

                                              1

                                              新着記事