日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python性能之服務(wù)優(yōu)化的方法解析

馬哥Linux運(yùn)維 ? 2017-12-31 01:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

初看這個(gè)標(biāo)題,相信很多同學(xué)都笑了,python有性能可言么,呵呵噠...確實(shí)哦,python其實(shí)就是為了快速開(kāi)發(fā)應(yīng)用而出生的,雖然python的服務(wù)都以性能低而聞名全世界,但是總該有優(yōu)化的地方吧,呵呵噠....

這不,這兩天本作者就碰見(jiàn)了這樣一個(gè)問(wèn)題,首先自我介紹下,我是干嘛的,肯定是屌絲程序員了,這個(gè)猜都不用猜,要不然也不會(huì)蛋疼的寫(xiě)這篇文章了,我們組是基礎(chǔ)開(kāi)發(fā)組,就是專(zhuān)門(mén)開(kāi)發(fā)一些剝離業(yè)務(wù)的組件讓其他部門(mén)去用,比如業(yè)務(wù)監(jiān)控,業(yè)務(wù)報(bào)警,服務(wù)數(shù)據(jù)采集等等一堆搬磚的活.好了,廢話(huà)不多說(shuō)了,估計(jì)看到這的也都看煩了...你們真的煩了么

這樣滴,我們這有個(gè)收集業(yè)務(wù)數(shù)據(jù)的組件簡(jiǎn)稱(chēng)M好啦,首先他要在業(yè)務(wù)服務(wù)器上建個(gè)udpserver,然后就靜靜的等業(yè)務(wù)的客戶(hù)端上報(bào)數(shù)據(jù)過(guò)來(lái),數(shù)據(jù)格式是key-value形式的,然而就在最近幾天,有人在給業(yè)務(wù)機(jī)器做壓測(cè)的時(shí)候,發(fā)現(xiàn)一個(gè)問(wèn)題,隨著并發(fā)的增加,這個(gè)M組件的cpu使用率也在不斷上升,擦,這下服務(wù)器不愿意了,開(kāi)始瘋狂報(bào)警,然后做壓測(cè)的那個(gè)人就找我這來(lái)了,巴拉巴拉一堆,意思就是我給業(yè)務(wù)做壓測(cè),你收集數(shù)據(jù)的組件飚個(gè)毛啊......

然而我是那么容易被打倒的么,就解釋說(shuō)當(dāng)然啊,你在給業(yè)務(wù)壓測(cè)的時(shí)候,同時(shí)你的client也在請(qǐng)求我啊,相當(dāng)于我的并發(fā)量也在上升啊,不飚才怪呢,好吧,說(shuō)歸說(shuō),抱著工匠精神,開(kāi)始找問(wèn)題吧...

這個(gè)M組件是用python寫(xiě)的多線(xiàn)程的udpserver,經(jīng)本人測(cè)試,當(dāng)并發(fā)達(dá)到2000的時(shí)候,cpu就100%左右了,其實(shí)udp相比tcp而言性能已經(jīng)很高了,不過(guò)這個(gè)并發(fā)還是有點(diǎn)感人啊,改成多進(jìn)程也試了下,cpu占用還是70%左右,畢竟多進(jìn)程適用計(jì)算密集型的,于是就想到了協(xié)程,協(xié)程像是一種在程序級(jí)別來(lái)模擬系統(tǒng)級(jí)別 的進(jìn)程,由于是單進(jìn)程,并且少了上下文切換,于是相對(duì)來(lái)說(shuō)系統(tǒng)消耗很少,而網(wǎng)上的各種測(cè)試也表明,協(xié)程確實(shí)擁有驚人的速度。并且在實(shí)現(xiàn)過(guò)程中,協(xié)程可以 用以前同步思路的寫(xiě)法,而運(yùn)行起來(lái)確是異步的,挺有意思。

聽(tīng)說(shuō)python有個(gè)模塊叫做eventlet很強(qiáng)大,eventlet的核心是協(xié)程(也叫做green thread)。協(xié)程的好處是沒(méi)有線(xiàn)程開(kāi)銷(xiāo)來(lái)的大(比如切換代價(jià)很?。?。同時(shí)協(xié)程由于調(diào)度都由開(kāi)發(fā)者自己決定,所以對(duì)lock的需求就很低了

010F5O38-0.png

上面是一個(gè)uds(unix domian socket)的例子,這里也是通過(guò)一個(gè)pool限制資源的使用。當(dāng)每個(gè)請(qǐng)求來(lái)的時(shí)候通過(guò)spawn_n方法把對(duì)這個(gè)請(qǐng)求的handle方法放到獨(dú)立的協(xié)程中去處理。而handle中的recv這些方法都是被綠化過(guò)的,所以如果讀取不到數(shù)據(jù)這些方法就會(huì)把cpu時(shí)間交出來(lái)給別的協(xié)程使用,eventlet還有一個(gè)衍生品gevent,先看看例子:

010F55c7-1.png

上面是官方的例子,gevent是一個(gè)基于libev的python并發(fā)框架,以微線(xiàn)程greenlet為核心,使用了epoll事件監(jiān)聽(tīng)機(jī)制以及諸多其他優(yōu)化而變得高效.而且其中有個(gè)monkey類(lèi), 將現(xiàn)有基于Python線(xiàn)程直接轉(zhuǎn)化為greenlet(類(lèi)似于打patch)。

我自己測(cè)試了下,無(wú)論是eventlet寫(xiě)的uds還是gevent寫(xiě)的udpserver 并發(fā)達(dá)到2000時(shí),cpu大概占用到30%左右,性能比之前降了2/3,效果還是很顯著的,不過(guò)這個(gè)還是沒(méi)有達(dá)到理想效果,后期準(zhǔn)備嘗試下日志的方式,應(yīng)該會(huì)比現(xiàn)在更省資源,就怕磁盤(pán)受不了,更何況我們用的還是所謂的云主機(jī)~

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 優(yōu)化
    +關(guān)注

    關(guān)注

    0

    文章

    221

    瀏覽量

    24767
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4889

    瀏覽量

    90329

原文標(biāo)題:榨干python性能之服務(wù)優(yōu)化

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入解析 onsemi FNB33060T Motion SPM 3 模塊:高性能電機(jī)驅(qū)動(dòng)的理想

    深入解析 onsemi FNB33060T Motion SPM 3 模塊:高性能電機(jī)驅(qū)動(dòng)的理想選 在電機(jī)驅(qū)動(dòng)領(lǐng)域,一款性能卓越的逆變器輸出級(jí)模塊對(duì)于提升電機(jī)系統(tǒng)的
    的頭像 發(fā)表于 04-28 15:40 ?85次閱讀

    深入解析ADRF5345:高性能SP4T開(kāi)關(guān)的卓越

    深入解析ADRF5345:高性能SP4T開(kāi)關(guān)的卓越選 在電子工程領(lǐng)域,開(kāi)關(guān)作為信號(hào)路由和控制的關(guān)鍵組件,其性能直接影響著整個(gè)系統(tǒng)的表現(xiàn)。ADRF5345作為一款高
    的頭像 發(fā)表于 04-28 14:45 ?115次閱讀

    解析onsemi FDC6318P:高性能雙P溝道MOSFET的卓越

    解析onsemi FDC6318P:高性能雙P溝道MOSFET的卓越選 在電子設(shè)計(jì)領(lǐng)域,MOSFET是不可或缺的關(guān)鍵元件,其性能直接影響著電路的效率與穩(wěn)定性。今天,我們就來(lái)深入剖析o
    的頭像 發(fā)表于 04-21 15:15 ?326次閱讀

    使用PYTHON進(jìn)行的跨平臺(tái)仿真

    快速物理光學(xué)軟件VirtualLab Fusion以其“連接場(chǎng)求解器”方法而自豪,該方法將應(yīng)用于不同組件上的專(zhuān)用電磁場(chǎng)求解器結(jié)合在一起,以實(shí)現(xiàn)整個(gè)系統(tǒng)的物理光學(xué)模擬。這種方法的邏輯擴(kuò)展不僅是連接軟件
    發(fā)表于 04-02 08:21

    深度解析ADSP-2126x:高性能音頻處理的理想

    深度解析ADSP-2126x:高性能音頻處理的理想選 在當(dāng)今的電子領(lǐng)域,音頻處理技術(shù)不斷發(fā)展,對(duì)處理器的性能和功能提出了更高的要求。ADI公司的ADSP-21261/ADSP-212
    的頭像 發(fā)表于 03-23 16:20 ?206次閱讀

    深度解析LTC7892:高性能雙路升壓控制器的卓越

    深度解析LTC7892:高性能雙路升壓控制器的卓越選 一、引言 在電子設(shè)備的電源管理領(lǐng)域,對(duì)于高性能、高效率的升壓控制器的需求始終不斷攀升。特別是在面對(duì)氮化鎵(GaN)場(chǎng)效應(yīng)晶體管(
    的頭像 發(fā)表于 03-02 14:05 ?363次閱讀

    1688 商品詳情 API 調(diào)用與數(shù)據(jù)解析 Python 實(shí)戰(zhàn)

    你想要的是 1688 商品詳情 API 的 Python 調(diào)用與數(shù)據(jù)解析實(shí)戰(zhàn)方案,核心是完成 API 憑證配置、接口請(qǐng)求(含簽名)、響應(yīng)數(shù)據(jù)解析、異常處理 的全流程落地,我會(huì)提供可直接運(yùn)行的代碼,并
    的頭像 發(fā)表于 02-10 11:23 ?406次閱讀

    深入解析TRF3761:高性能集成頻率合成器的卓越

    深入解析TRF3761:高性能集成頻率合成器的卓越選 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,高性能頻率合成器是眾多無(wú)線(xiàn)通信和射頻應(yīng)用的核心組件。TI推出的TRF3761系列整數(shù) - N PLL頻率合
    的頭像 發(fā)表于 02-10 09:40 ?474次閱讀

    深入解析TRF3761:高性能集成頻率合成器的卓越

    深入解析TRF3761:高性能集成頻率合成器的卓越選 在無(wú)線(xiàn)通信技術(shù)飛速發(fā)展的今天,高性能的頻率合成器對(duì)于各類(lèi)無(wú)線(xiàn)設(shè)備的穩(wěn)定運(yùn)行至關(guān)重要。TI推出的TRF3761系列頻率合成器,以其
    的頭像 發(fā)表于 02-10 09:40 ?470次閱讀

    Python運(yùn)行本地Web服務(wù)并實(shí)現(xiàn)遠(yuǎn)程訪(fǎng)問(wèn)

    本文介紹使用Python搭建本地Web服務(wù)并結(jié)合 ZeroNews 實(shí)現(xiàn)公網(wǎng)訪(fǎng)問(wèn)。
    的頭像 發(fā)表于 02-06 11:39 ?373次閱讀
    <b class='flag-5'>Python</b>運(yùn)行本地Web<b class='flag-5'>服務(wù)</b>并實(shí)現(xiàn)遠(yuǎn)程訪(fǎng)問(wèn)

    華納云服務(wù)器Linux系統(tǒng)電源管理與節(jié)能優(yōu)化配置方法

    在云計(jì)算時(shí)代,Linux系統(tǒng)的電源管理優(yōu)化成為提升云服務(wù)器能效的關(guān)鍵環(huán)節(jié)。本文將深入解析Linux內(nèi)核的電源管理機(jī)制,從CPU調(diào)頻策略到磁盤(pán)休眠設(shè)置,提供一套完整的節(jié)能配置方案。通過(guò)調(diào)整系統(tǒng)參數(shù)
    的頭像 發(fā)表于 08-21 15:09 ?1134次閱讀

    鴻蒙5開(kāi)發(fā)寶藏案例分享---長(zhǎng)列表性能優(yōu)化解析

    鴻蒙長(zhǎng)列表性能優(yōu)化大揭秘!告別卡頓,實(shí)戰(zhàn)代碼解析來(lái)了! 大家好呀~今天在翻鴻蒙開(kāi)發(fā)者文檔時(shí),發(fā)現(xiàn)了個(gè) 性能優(yōu)化寶藏案例 !官方居然悄悄放出了
    發(fā)表于 06-12 17:40

    鴻蒙5開(kāi)發(fā)寶藏案例分享---Web加載時(shí)延優(yōu)化解析

    鴻蒙開(kāi)發(fā)寶藏:Web加載完成時(shí)延優(yōu)化實(shí)戰(zhàn) 大家好呀!今天在翻鴻蒙開(kāi)發(fā)者文檔時(shí),發(fā)現(xiàn)了一個(gè)隱藏的 性能優(yōu)化寶藏區(qū) ——官方竟然悄悄提供了超多實(shí)戰(zhàn)案例!尤其是****Web加載完成時(shí)延分析這塊,簡(jiǎn)直是
    發(fā)表于 06-12 17:11

    鴻蒙5開(kāi)發(fā)寶藏案例分享---性能優(yōu)化案例解析

    鴻蒙性能優(yōu)化寶藏指南:實(shí)戰(zhàn)工具與代碼案例解析 大家好呀!今天在翻鴻蒙開(kāi)發(fā)者文檔時(shí),意外挖到一個(gè) 性能優(yōu)化寶藏庫(kù) ——原來(lái)官方早就提供了超多實(shí)
    發(fā)表于 06-12 16:36

    HarmonyOS優(yōu)化應(yīng)用內(nèi)存占用問(wèn)題性能優(yōu)化

    應(yīng)用開(kāi)發(fā)過(guò)程中注重內(nèi)存管理,積極采取措施來(lái)減少內(nèi)存占用,以優(yōu)化應(yīng)用程序的性能和用戶(hù)體驗(yàn)。 HarmonyOS提供了一些內(nèi)存管理的工具和接口,幫助開(kāi)發(fā)者有效地管理內(nèi)存資源: onMemoryLevel接口
    發(fā)表于 05-21 11:27
    鸡西市| 深水埗区| 布拖县| 佛冈县| 葵青区| 赣州市| 扬州市| 英山县| 兴隆县| 浏阳市| 马龙县| 河北区| 无锡市| 米林县| 泰兴市| 商水县| 沅陵县| 禹城市| 凤台县| 南华县| 信丰县| 岳阳县| 蒙阴县| 个旧市| 米易县| 东乡县| 靖边县| 达拉特旗| 陈巴尔虎旗| 乌兰县| 靖边县| 定兴县| 武邑县| 当涂县| 长海县| 香港| 岐山县| 改则县| 黄陵县| 盘锦市| 霞浦县|