物聯方案
2024年10月21日
對于IO方面,對于應用程序的優化,主要有:
第一,可以用追加寫代替隨機寫,減少尋址開銷,加快 I/O 寫的速度。
第二,可以借助緩存 I/O ,充分利用系統緩存,降低實際 I/O 的次數。
第三,可以在應用程序內部構建自己的緩存,或者用 Redis 這類外部緩存系統。
第四,在需要頻繁讀寫同一塊磁盤空間時,可以用 mmap 代替 read/write,減少內存的拷貝次數。
第五,在需要同步寫的場景中,盡量將寫請求合并,而不是讓每個請求都同步寫入磁盤,即可以用 fsync() 取代 O_SYNC。
第六,在多個應用程序共享相同磁盤時,為了保證 I/O 不被某個應用完全占用,用 cgroups 的 I/O 子系統,來限制進程 / 進程組的 IOPS 以及吞吐量。
最后,在使用 CFQ 調度器時,可以用 ionice 來調整進程的 I/O 調度優先級,特別是提高核心應用的 I/O 優先級。
轉自:互聯網