亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 66973 | 回復(fù): 28
打印 上一主題 下一主題

線程性能到達瓶頸,并發(fā)還是并行? [復(fù)制鏈接]

論壇徽章:
15
2015七夕節(jié)徽章
日期:2015-08-21 11:06:172017金雞報曉
日期:2017-01-10 15:19:56極客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16賽季CBA聯(lián)賽之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT運維版塊每日發(fā)帖之星
日期:2016-01-28 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-01-25 14:01:34IT運維版塊每周發(fā)帖之星
日期:2016-01-07 23:04:26數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-12-04 14:50 |只看該作者 |倒序瀏覽
獲獎詳情:http://72891.cn/thread-4241378-1-1.html

首先,跟大家分享個陳年趣事:
幾年前,我去某軟公司應(yīng)聘,電話面試中與面試官有如下一番對話。 面試官:你了解多線程并發(fā)嗎?
我:不了解,我之前做業(yè)務(wù)系統(tǒng),多線程很大程度上都是委托給容器的……
面試官:我理解了。你不太熟悉并發(fā)是嗎?
我:是的。
面試官:那我們還是來聊一聊并發(fā)吧。
祝大家線程安全。

案列介紹:
      最初是一個單線程程序性能到達瓶頸后,通過將整個作業(yè)切成一個個小任務(wù),每一個任務(wù)執(zhí)行一個線程,運行結(jié)果發(fā)現(xiàn)居然和之前差不多,通過調(diào)試發(fā)現(xiàn)其中一個任務(wù)執(zhí)行時間過長,再動態(tài)調(diào)節(jié)該任務(wù)的線程數(shù),當(dāng)發(fā)現(xiàn)隊列過多時啟動新線程來同時進行,結(jié)果性能上升不大,再定位發(fā)現(xiàn)多個線程競爭需要同步訪問同一個資源,修改為靜態(tài)線程池,再由上游哈希將數(shù)據(jù)放置不同的線程隊列中。
      進一步的性能提升發(fā)現(xiàn)怎么增大線程數(shù)性能都是這樣了,再檢查發(fā)現(xiàn)之前下游任務(wù)需要等待上游線程全部完成才能進一步操作,通過查閱資料找到一個算法只要上游有數(shù)據(jù)就可以開始進行計算,這樣到上游全部陸續(xù)完成時該步驟也只需要計算少量的數(shù)據(jù)就可以了。針對此問題您有什么更好的解決方法?


討論話題:(可任選一個或幾個)
1. 闡述一下你設(shè)計過的最滿意的并發(fā)/并行軟件架構(gòu)。
2. 詳細描述一下在多線程/進程/協(xié)程方式下遇到過的最難解決的問題以及如何解決的
3. 詳細講述一下曾經(jīng)使用過的最好的并發(fā)/并行組件
4. 對并行/并發(fā)的某一個理論進行詳細的說明


討論時間:2015年12月15日—2016年1月15日


獎勵設(shè)置:
活動結(jié)束后,我們將選取5位討論精彩的同學(xué),各送技術(shù)圖書《七周七并發(fā)模型》一本。



作者: (美)Paul Butcher   
譯者: 黃炎
叢書名: 圖靈程序設(shè)計叢書
出版社:人民郵電出版社
ISBN:9787115386069
上架時間:2015-3-13
出版日期:2015 年4月
開本:16開
頁碼:234
版次:1-1

內(nèi)容簡介:并發(fā)編程近年逐漸熱起來,Go等并發(fā)語言也對并發(fā)編程提供了良好的支持,使得并發(fā)這個話題受到越來越多人的關(guān)注。本書延續(xù)了《七周七語言》的寫作風(fēng)格,通過以下七個精選的模型幫助讀者了解并發(fā)領(lǐng)域的輪廓:線程與鎖,函數(shù)式編程,Clojure,actor,通信順序進程,數(shù)據(jù)級并行,Lambda架構(gòu)。書中每一章都設(shè)計成三天的閱讀量。每天閱讀結(jié)束都會有相關(guān)練習(xí),鞏固并擴展當(dāng)天的知識。每一章均有復(fù)習(xí),用于概括本章模型的優(yōu)點和缺陷。


樣章試讀: 第1章 概述.pdf (1.11 MB, 下載次數(shù): 50)

---------------------------------------------------------分割線---------------------------------------------------------------------
其實案例我想描述的更清楚一些,因為當(dāng)時沒有時間,現(xiàn)在補充如下:
軟件功能描述,通過libpcap抓取Mysql的包,并按照Mysql協(xié)議分解后將數(shù)據(jù)發(fā)送到Kafka供后續(xù)的分析實現(xiàn),軟件架構(gòu)如下:
pcapThread---->TcpProcThread----->MysqlProcThread----->KafkaSendThread
各線程作用比較清晰,pcap線程調(diào)用libpcap的接口獲取抓包,并根據(jù)配置排除掉不屬于本機或黑名單中的抓包,并將TCP/IP頭域?qū)⒔忾_有用的放到一個數(shù)據(jù)結(jié)構(gòu)中
TcpProc線程負責(zé)TCP的排序,包括亂序重傳等處理,將有效的消息發(fā)送到Mysql線程處理,MySQL線程根據(jù)MySQL協(xié)議提取SQL語句和結(jié)果元數(shù)據(jù)信息組成json格式并調(diào)用rdkafka庫發(fā)送
之前開發(fā)為簡便實現(xiàn),各線程之間通信采用出入隊列方式,同步采用互斥鎖,在QPS比較小的機器上測試正常,但上線到QPS比較大機器上,pcapThread出現(xiàn)丟包且比較嚴重
同時CPU飚的很高,直接占據(jù)單個核的100%,當(dāng)前通過一些手段,如鎖改為條件變量、使用無鎖隊列等,CPU下降到30%,丟包從30%以上下降到10%以下,但優(yōu)化還未完成,如果大家有興趣也可以直接根據(jù)這個現(xiàn)實的案例來思考發(fā)散。


論壇徽章:
13
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-08-06 06:20:002017金雞報曉
日期:2017-02-08 10:39:422017金雞報曉
日期:2017-01-10 15:13:29極客徽章
日期:2016-12-07 14:08:02JAVA
日期:2016-10-25 16:01:09luobin
日期:2016-06-17 17:46:362016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之天津
日期:2015-12-16 22:35:03黃金圣斗士
日期:2015-11-24 10:43:13IT運維版塊每日發(fā)帖之星
日期:2015-10-09 06:20:002015亞冠之廣州恒大
日期:2015-09-21 21:40:222015七夕節(jié)徽章
日期:2015-08-21 11:06:17
2 [報告]
發(fā)表于 2015-12-17 09:23 |只看該作者
這個好像很難,沒人回了......

論壇徽章:
7
IT運維版塊每日發(fā)帖之星
日期:2015-08-29 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-29 06:20:00平安夜徽章
日期:2015-12-26 00:06:30技術(shù)圖書徽章
日期:2016-02-03 16:35:252016猴年福章徽章
日期:2016-02-18 15:30:34fulanqi
日期:2016-06-17 17:54:25C
日期:2016-10-25 16:08:32
3 [報告]
發(fā)表于 2015-12-17 11:38 |只看該作者
才看到,居然沒有人回答 ... 支持一下,期待大;卮

論壇徽章:
8
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-22 06:20:00平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-21 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-02-03 06:20:00技術(shù)圖書徽章
日期:2016-02-03 16:35:252016猴年福章徽章
日期:2016-02-18 15:30:34shanzhi
日期:2016-06-17 17:59:31JAVA
日期:2016-10-25 16:16:28
4 [報告]
發(fā)表于 2015-12-17 11:58 |只看該作者

主要是沒用到過

論壇徽章:
15
2015七夕節(jié)徽章
日期:2015-08-21 11:06:172017金雞報曉
日期:2017-01-10 15:19:56極客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16賽季CBA聯(lián)賽之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT運維版塊每日發(fā)帖之星
日期:2016-01-28 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-01-25 14:01:34IT運維版塊每周發(fā)帖之星
日期:2016-01-07 23:04:26數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00
5 [報告]
發(fā)表于 2015-12-17 13:52 |只看該作者
其實案例我想描述的更清楚一些,因為當(dāng)時沒有時間,現(xiàn)在補充如下:
軟件功能描述,通過libpcap抓取Mysql的包,并按照Mysql協(xié)議分解后將數(shù)據(jù)發(fā)送到Kafka供后續(xù)的分析實現(xiàn),軟件架構(gòu)如下:
pcapThread---->TcpProcThread----->MysqlProcThread----->KafkaSendThread
各線程作用比較清晰,pcap線程調(diào)用libpcap的接口獲取抓包,并根據(jù)配置排除掉不屬于本機或黑名單中的抓包,并將TCP/IP頭域?qū)⒔忾_有用的放到一個數(shù)據(jù)結(jié)構(gòu)中
TcpProc線程負責(zé)TCP的排序,包括亂序重傳等處理,將有效的消息發(fā)送到Mysql線程處理,MySQL線程根據(jù)MySQL協(xié)議提取SQL語句和結(jié)果元數(shù)據(jù)信息組成json格式并調(diào)用rdkafka庫發(fā)送
之前開發(fā)為簡便實現(xiàn),各線程之間通信采用出入隊列方式,同步采用互斥鎖,在QPS比較小的機器上測試正常,但上線到QPS比較大機器上,pcapThread出現(xiàn)丟包且比較嚴重
同時CPU飚的很高,直接占據(jù)單個核的100%,當(dāng)前通過一些手段,如鎖改為條件變量、使用無鎖隊列等,CPU下降到30%,丟包從30%以上下降到10%以下,但優(yōu)化還未完成
后續(xù)做完后有時間總結(jié)一下發(fā)到這里更合適一些

論壇徽章:
146
2015年亞洲杯之日本
日期:2015-04-28 13:32:012015年亞洲杯之朝鮮
日期:2015-05-06 10:16:442015年亞洲杯之日本
日期:2015-05-06 10:21:342015年亞洲杯紀(jì)念徽章
日期:2015-05-13 17:16:442015亞冠之北京國安
日期:2015-05-13 17:18:292015亞冠之鹿島鹿角
日期:2015-05-13 17:19:062015亞冠之德黑蘭石油
日期:2015-05-27 16:47:402015亞冠之塔什干棉農(nóng)
日期:2015-05-28 15:24:122015亞冠之卡爾希納薩夫
日期:2015-06-01 13:52:392015亞冠之柏斯波利斯
日期:2015-06-04 17:37:292015亞冠之阿爾納斯?fàn)?日期:2015-06-16 11:31:202015亞冠之塔什干火車頭
日期:2015-06-23 10:12:33
6 [報告]
發(fā)表于 2015-12-17 14:20 |只看該作者
大牛在下面回復(fù)了,可以給大家普及寫各位不懂的領(lǐng)域,希望大家能得到更多回復(fù) 4# sjf0115


   

論壇徽章:
8
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-22 06:20:00平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-21 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-02-03 06:20:00技術(shù)圖書徽章
日期:2016-02-03 16:35:252016猴年福章徽章
日期:2016-02-18 15:30:34shanzhi
日期:2016-06-17 17:59:31JAVA
日期:2016-10-25 16:16:28
7 [報告]
發(fā)表于 2015-12-17 20:46 |只看該作者
回復(fù) 6# 王楠w_n


    恩  就是希望在這個平臺學(xué)到自己感興趣的知識

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
8 [報告]
發(fā)表于 2015-12-17 21:04 |只看該作者
本帖最后由 laputa73 于 2015-12-17 21:08 編輯

一直覺得線程狠復(fù)雜,性能也狠差。
基于線程模型的java服務(wù)器,跑到500并發(fā)已經(jīng)狠了不起了。
基于事件的就可以輕松上萬并發(fā)。但是回調(diào)寫起來讓頭大。
最早接觸協(xié)程是通過erlang.這個對后續(xù)的影響很大。
但是erlang的學(xué)習(xí)門檻確實比較高。
后來又陸續(xù)看了lua的協(xié)程和perl的coro,python的stackless和gevent.
感覺協(xié)程確實是個好東西,高大上,但是組件級別的支持還是比較別扭。
golang一出,語言級支持協(xié)程并發(fā),而且還同時支持多核并行。
沒有什么可猶豫的,直接擁抱go吧。
java的同學(xué),估計轉(zhuǎn)scala比較容易。

論壇徽章:
13
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-08-06 06:20:002017金雞報曉
日期:2017-02-08 10:39:422017金雞報曉
日期:2017-01-10 15:13:29極客徽章
日期:2016-12-07 14:08:02JAVA
日期:2016-10-25 16:01:09luobin
日期:2016-06-17 17:46:362016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之天津
日期:2015-12-16 22:35:03黃金圣斗士
日期:2015-11-24 10:43:13IT運維版塊每日發(fā)帖之星
日期:2015-10-09 06:20:002015亞冠之廣州恒大
日期:2015-09-21 21:40:222015七夕節(jié)徽章
日期:2015-08-21 11:06:17
9 [報告]
發(fā)表于 2015-12-18 12:56 |只看該作者
回復(fù) 5# heguangwu


看描述,pcapThread用來抓包,然后還處理。當(dāng)QPS高的時候,處理慢了,丟包正常。

建議 抓包和處理數(shù)據(jù)分開。

pcapThread抓包后,直接發(fā)到kafka,然后多個消費者取包,然后處理,再繼續(xù)后面的處理,根據(jù)量還可增加消費者

如:

寶突然增加的時候,kafka也可以積壓存儲,保證丟包率比較低
pcapThread(抓包)  --> kafka   --> 增加一個程序(根據(jù)配置排除掉不屬于本機或黑名單中的抓包,并將TCP/IP頭域?qū)⒔忾_有用的放到一個數(shù)據(jù)結(jié)構(gòu)中) --> kafka --> TcpProcThread --> kafka -->MysqlProcThread -->KafkaSendThread

論壇徽章:
15
2015七夕節(jié)徽章
日期:2015-08-21 11:06:172017金雞報曉
日期:2017-01-10 15:19:56極客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16賽季CBA聯(lián)賽之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT運維版塊每日發(fā)帖之星
日期:2016-01-28 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-01-25 14:01:34IT運維版塊每周發(fā)帖之星
日期:2016-01-07 23:04:26數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-10 06:20:00
10 [報告]
發(fā)表于 2015-12-18 13:32 |只看該作者

pcapThread并沒有做業(yè)務(wù)處理,只是做了一些及其簡單的過濾,如去掉了長度為0的包,這個不是丟包的原因,因為哪怕我直接將數(shù)據(jù)放入下一個線程的隊列同樣會丟包
回復(fù) 9# chenxing2


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP