国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

java - CPU飆升的原因

瀏覽:154日期:2024-03-24 15:26:05

問題描述

我在通訊底層使用了一個epoll模型,然后epoll在處理請求時會將請求交給一個線程池去處理,線程池中的線程則是調用上層服務,上層服務因為涉及到網絡通訊,所以大致處理一個請求不到10ms

就這樣一個模型在流量增大時會導致CPU急劇飆升嗎?

背景:我的CPU使用率大概在75%左右(流量:20~22Mbps);當流量增大到25Mbps的時候,CPU直接打滿了。。這個不是很符合預期,因為流量增加不到15%,但是CPU飆升25%。

問題解答

回答1:

簡單說下我的觀點,僅供你參考哈:1:先考慮你的請求是IO密集還是CPU密集?我說的IO密集是指需要read和write收發消息的網絡IO,也就是通信;CPU密集例如需要經過運算才能出結果,且時間較長。2:如果是第一種IO密集型的,那我覺得你沒必要把所有的請求都交給線程池去處理。如果沒有讀寫文件等磁盤IO耗時的操作,甚至都不一定使用線程池。這種方式下 One loop per thread模型無疑是最高效的了,說白了就是在單個EPOLL中完成所有的讀寫(網絡數據的讀寫,而不是讀文件)和定時事件。3:如果是CPU密集型的,那用thread_pool沒有問題,就看你的配置的線程數和代碼有沒有問題了。

這個問題沒有實際環境也不好回答,我全當拋磚引玉,不對的地方望指出。

標簽: java
相關文章:
主站蜘蛛池模板: 那坡县| 鄢陵县| 蓝山县| 永靖县| 松滋市| 新郑市| 壤塘县| 巴东县| 铅山县| 嵊州市| 大连市| 康乐县| 师宗县| 龙岩市| 合川市| 湛江市| 平度市| 奉节县| 芮城县| 弋阳县| 蕲春县| 台前县| 苍溪县| 贞丰县| 太仓市| 东辽县| 九龙坡区| 深水埗区| 武邑县| 井陉县| 浪卡子县| 勐海县| 清流县| 南康市| 拜泉县| 呼伦贝尔市| 新泰市| 府谷县| 察隅县| 库尔勒市| 平和县|