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