由于自己是寫Server端程序的。最近有個(gè)別客戶反映在服務(wù)端負(fù)載量大的情況下,經(jīng)常有客戶端的TCP請(qǐng)求處理超時(shí)。看了log文件,發(fā)現(xiàn)是服務(wù)端接收請(qǐng)求之后,未能及時(shí)處理請(qǐng)求并回復(fù)客戶端應(yīng)答造成。
仔細(xì)觀察了請(qǐng)求的處理過(guò)程,唯一耗時(shí)的就是文件I/O的Flush操作,因?yàn)檫@個(gè)操作會(huì)強(qiáng)制要求OS提交IO請(qǐng)求,而不是用OS自帶的IO緩沖。如果在IO處理非常頻繁的情況下,的確會(huì)導(dǎo)致服務(wù)端I/O告急,磁盤壓力過(guò)大,性能大幅下降,