通過(guò)strace 跟蹤進(jìn)程
什么是驚群 ?
驚群效應(yīng)就是當(dāng)一個(gè)fd的事件被觸發(fā)時(shí),所有等待這個(gè)fd的線程或進(jìn)程都被喚醒。
一般都是socket的accept()會(huì)導(dǎo)致驚群(當(dāng)然也可以弄成一堆線程/進(jìn)程阻塞read一個(gè)fd),很多個(gè)進(jìn)程都block在server socket的accept(),一但有客戶端進(jìn)來(lái),所有進(jìn)程的accept()都會(huì)返回,但是只有一個(gè)進(jìn)程會(huì)讀到數(shù)據(jù),就是驚群。實(shí)際上現(xiàn)在的Linux內(nèi)核實(shí)現(xiàn)中不會(huì)出現(xiàn)驚群了,只會(huì)有一個(gè)進(jìn)程被喚醒(Linux2.6內(nèi)核)。