@io

動態 列表
@openanolis

iofsstat:幫你輕鬆定位 IO 突高,前因後果一目瞭然 | 龍蜥技術

編者按:sysAK(system analyse kit),是龍蜥社區系統運維 SIG 下面的一個開源項目,聚集阿里百萬服務器的多年運維經驗,針對不同的運維需求提供了一系列工具,形成統一的產品進行服務。本文總結了實際工作中 IO 打滿、IO util 高問題的處理經驗,將它梳理成一套理論分析方法並形成 iofsstat 工具,集成到了sysAK 工具集裏。以下將由作者帶大家一道領略 iofssta

openanolis 頭像

@openanolis

昵稱 龍蜥社區

@donnytab

C++ Boost.Asio異步編程

Boost.Asio是Boost庫中非常著名的I/O組件,是用於網絡和低層IO編程的跨平台C++庫,為開發者提供了C++環境下穩定的異步模型。本文將介紹Boost庫中Asio的結構及相關異步編程。 Asio三大組件 io_object I/O對象的集合,其中包含大家所熟悉的socket、deadline_timer等對象,主要功能是提供接口給用户使用。 services服務 邏輯功能的實現者,其中

donnytab 頭像

@donnytab

昵稱 donnytab

@yudinghou

一文説透IO多路複用select/poll/epoll

概述 如果我們要開發一個高併發的TCP程序。常規的做法是:多進程或者多線程。即:使用其中一個線程或者進程去監聽有沒有客户端連接上來,一旦有新客户端連接,就新開一個線程(進程),將其扔到線程(或進程)中去處理具體的讀寫操作等業務邏輯,主線程(進程)繼續等待,監聽其他的客户端。 這樣操作往往存在很大的弊端。首先是浪費資源,要知道,單個進程的最大虛擬內存是4G,單個線程的虛擬內存也有將近8

yudinghou 頭像

@yudinghou

昵稱 禹鼎侯

@taozi_60b0b3c71b1a8

IO:阻塞和非阻塞、同步和異步

阻塞和非阻塞 阻塞的時候線程會被掛起 阻塞: 當數據還沒準備好時,調用了阻塞的方法,則線程會被掛起,會讓出CPU時間片,此時是無法處理過來的請求,需要等待其他線程來進行喚醒,該線程才能進行後續操作或者處理其他請求。 非阻塞: 意味着,當數據還沒準備好的時候,即便我調用了阻塞方法,該線程也不會被掛起,後續的請求也能夠被處理。 同步 同步和異步跟串行和並行非常形似。 假設在一個場景下:完成一個大任務需

taozi_60b0b3c71b1a8 頭像

@taozi_60b0b3c71b1a8

昵稱 Java架構師

@cuicui_623c4b541e91e

DatenLord|重新思考Rust Async如何實現高性能IO

作者: 王璞 長期以來,計算機系統IO的速度一直沒能跟上CPU速度的提升,相比而言IO往往成為系統的性能瓶頸,計算任務等待IO存取數據,成為高性能系統的一大性能瓶頸。本文先剖析IO性能瓶頸的根源,然後舉例説明如何解決IO瓶頸,最後簡要介紹我們在高性能IO方面的嘗試。 IO性能瓶頸 當用户程序執行IO操作時,絕大多數情況下是調用操作系統內核提供的系統調用來執行IO操作,最常見的IO系統調用是read

cuicui_623c4b541e91e 頭像

@cuicui_623c4b541e91e

昵稱 Datenlord