memcache和redis選擇 Memcache連接超時什么原因?
Memcache連接超時什么原因?最近,我們在工作中遇到了一個bug。我們都知道JavaNIO的異步阻塞io。我們有一個客戶端來執(zhí)行緩存查詢和插入操作。突然,天線發(fā)出警報(bào),緩存查詢超時。然后我們迅速拉
Memcache連接超時什么原因?
最近,我們在工作中遇到了一個bug。
我們都知道JavaNIO的異步阻塞io。我們有一個客戶端來執(zhí)行緩存查詢和插入操作。突然,天線發(fā)出警報(bào),緩存查詢超時。然后我們迅速拉緩存人員來解決這個問題(大公司的人員速度很慢,效率很低)。緩存人員直接剪了一張照片告訴我們,這不是他們的問題。最后,定位后的原因是Memcache的客戶端是NiO模型,只有一個線程進(jìn)行復(fù)用。但是!因?yàn)楫?dāng)時CPU有點(diǎn)高。(50%似乎并不高)。但由于服務(wù)器使用線程池,服務(wù)器使用線程池,已經(jīng)設(shè)置了1000多個Java線程。。CPU調(diào)度失控。。緩存獲取速度非常快,但是因?yàn)橹挥幸粋€線程,所以到緩存線程的CPU調(diào)度已經(jīng)超時…
然后。。解決辦法是增加機(jī)器。。結(jié)論:(公司里的這些人真的很擅長他們的能力。)