在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

python性能之服務優化的方法解析

馬哥Linux運維 ? 2017-12-31 01:04 ? 次閱讀

初看這個標題,相信很多同學都笑了,python有性能可言么,呵呵噠...確實哦,python其實就是為了快速開發應用而出生的,雖然python的服務都以性能低而聞名全世界,但是總該有優化的地方吧,呵呵噠....

這不,這兩天本作者就碰見了這樣一個問題,首先自我介紹下,我是干嘛的,肯定是屌絲程序員了,這個猜都不用猜,要不然也不會蛋疼的寫這篇文章了,我們組是基礎開發組,就是專門開發一些剝離業務的組件讓其他部門去用,比如業務監控,業務報警,服務數據采集等等一堆搬磚的活.好了,廢話不多說了,估計看到這的也都看煩了...你們真的煩了么

這樣滴,我們這有個收集業務數據的組件簡稱M好啦,首先他要在業務服務器上建個udpserver,然后就靜靜的等業務的客戶端上報數據過來,數據格式是key-value形式的,然而就在最近幾天,有人在給業務機器做壓測的時候,發現一個問題,隨著并發的增加,這個M組件的cpu使用率也在不斷上升,擦,這下服務器不愿意了,開始瘋狂報警,然后做壓測的那個人就找我這來了,巴拉巴拉一堆,意思就是我給業務做壓測,你收集數據的組件飚個毛啊......

然而我是那么容易被打倒的么,就解釋說當然啊,你在給業務壓測的時候,同時你的client也在請求我啊,相當于我的并發量也在上升啊,不飚才怪呢,好吧,說歸說,抱著工匠精神,開始找問題吧...

這個M組件是用python寫的多線程的udpserver,經本人測試,當并發達到2000的時候,cpu就100%左右了,其實udp相比tcp而言性能已經很高了,不過這個并發還是有點感人啊,改成多進程也試了下,cpu占用還是70%左右,畢竟多進程適用計算密集型的,于是就想到了協程,協程像是一種在程序級別來模擬系統級別 的進程,由于是單進程,并且少了上下文切換,于是相對來說系統消耗很少,而網上的各種測試也表明,協程確實擁有驚人的速度。并且在實現過程中,協程可以 用以前同步思路的寫法,而運行起來確是異步的,挺有意思。

聽說python有個模塊叫做eventlet很強大,eventlet的核心是協程(也叫做green thread)。協程的好處是沒有線程開銷來的大(比如切換代價很小)。同時協程由于調度都由開發者自己決定,所以對lock的需求就很低了

010F5O38-0.png

上面是一個uds(unix domian socket)的例子,這里也是通過一個pool限制資源的使用。當每個請求來的時候通過spawn_n方法把對這個請求的handle方法放到獨立的協程中去處理。而handle中的recv這些方法都是被綠化過的,所以如果讀取不到數據這些方法就會把cpu時間交出來給別的協程使用,eventlet還有一個衍生品gevent,先看看例子:

010F55c7-1.png

上面是官方的例子,gevent是一個基于libev的python并發框架,以微線程greenlet為核心,使用了epoll事件監聽機制以及諸多其他優化而變得高效.而且其中有個monkey類, 將現有基于Python線程直接轉化為greenlet(類似于打patch)。

我自己測試了下,無論是eventlet寫的uds還是gevent寫的udpserver 并發達到2000時,cpu大概占用到30%左右,性能比之前降了2/3,效果還是很顯著的,不過這個還是沒有達到理想效果,后期準備嘗試下日志的方式,應該會比現在更省資源,就怕磁盤受不了,更何況我們用的還是所謂的云主機~

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 優化
    +關注

    關注

    0

    文章

    220

    瀏覽量

    23928
  • python
    +關注

    關注

    56

    文章

    4798

    瀏覽量

    84810

原文標題:榨干python性能之服務優化

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    NTP服務器的性能優化方法

    NTP(Network Time Protocol,網絡時間協議)服務性能優化對于確保時間同步的準確性和可靠性至關重要。以下是一些NTP服務
    的頭像 發表于 12-18 15:24 ?340次閱讀

    Linux性能優化

    一、優化內核相關參數 配置文件/etc/sysctl.conf 配置方法直接將參數添加進文件每條一行 sysctl -a 可以查看默認配置sysctl -p 執行并檢測是否有錯誤 1、網絡相關
    的頭像 發表于 12-06 10:15 ?214次閱讀
    Linux<b class='flag-5'>之</b><b class='flag-5'>性能</b><b class='flag-5'>優化</b>

    HarmonyOS Web開發性能優化指導

    的影響因素以及對應的優化方案。 二、Web頁面加載性能優化指導 (一)Web頁面加載流程 Web頁面加載包含網絡連接、資源下載、DOM解析、JavaScript代碼編譯執行和渲染等關鍵
    發表于 12-06 08:41

    如何優化SSR渲染性能

    服務器端渲染(SSR)是一種將前端頁面在服務器端生成的技術,它可以提高首屏加載速度,改善SEO,并提供更好的用戶體驗。然而,SSR也可能帶來性能挑戰,尤其是在處理大量請求時。以下是一些優化
    的頭像 發表于 11-18 11:31 ?347次閱讀

    Python中代理服務器的配置與應用

    在網絡通信中,代理服務器作為一種重要的網絡中間件,充當著客戶端和目標服務器之間的中間人角色。它能夠接收來自客戶端的請求,并將這些請求轉發給目標服務器,然后將服務器的響應返回給客戶端。
    的頭像 發表于 11-12 07:13 ?188次閱讀

    如何優化FPGA設計的性能

    優化FPGA(現場可編程門陣列)設計的性能是一個復雜而多維的任務,涉及多個方面和步驟。以下是一些關鍵的優化策略: 一、明確性能指標 確定需求 :首先,需要明確FPGA設計的
    的頭像 發表于 10-25 09:23 ?395次閱讀

    AI大模型的性能優化方法

    AI大模型的性能優化是一個復雜而關鍵的任務,涉及多個方面和策略。以下是一些主要的性能優化方法: 一、模型壓縮與
    的頭像 發表于 10-23 15:01 ?772次閱讀

    使用Python構建高效的HTTP代理服務

    構建一個高效的HTTP代理服務器在Python中涉及多個方面,包括性能優化、并發處理、協議支持(HTTP/HTTPS)、錯誤處理以及日志記錄等。
    的頭像 發表于 10-23 07:41 ?180次閱讀

    如何優化Linux服務器的性能

    優化Linux服務器的性能是一個綜合性的任務,涉及硬件、軟件、配置、監控等多個方面。以下是一個詳細的指南,旨在幫助系統管理員和運維人員提升Linux服務器的
    的頭像 發表于 09-29 16:50 ?330次閱讀

    Linux服務性能查看方法

    Linux服務性能查看是系統管理員和開發人員在日常工作中經常需要進行的任務,以確保系統穩定運行并優化資源使用。以下將詳細介紹多種Linux服務
    的頭像 發表于 09-02 11:15 ?1130次閱讀

    韓國服務器的性能如何提升

    韓國服務器的性能可以通過硬件升級、網絡優化、緩存優化和軟件優化來提升。具體方法如下,rak小編為
    的頭像 發表于 08-15 11:33 ?262次閱讀

    新加坡服務器延遲大嗎?如何進行優化

    新加坡服務器的延遲通常在全國平均延遲111ms左右,其中移動網絡約為90ms,聯通網絡106ms,電信網絡最低約為85ms。為了進行優化,一般可以采取使用CDN、優化路由線路、增加帶寬和服務
    的頭像 發表于 08-09 13:58 ?219次閱讀

    OpenHarmony開機優化

    、磁盤I/O等,并以圖表形式展示出來。 使用方法 參考文檔:OpenHarmony性能調優工具—boochart_小~Q-Laval社區 通過Bootchart工具,開發者可以深入了解系統的啟動過程,并
    發表于 07-01 16:39

    python解析netflow數據到csv的流程詳解

    本文主要講解了linux下通過tcpdump抓取netflow數據包,并將其導入到wireshark進行解析,然后通過wireshark導出數據為json文件,再通過python腳本將其解析為csv文件以便做數據分析。
    的頭像 發表于 05-01 11:18 ?689次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>解析</b>netflow數據到csv的流程詳解

    美國站群服務優化:提升性能與可靠性的關鍵功能

    隨著互聯網的迅猛發展,網站的性能和可靠性成為了企業成功的關鍵因素之一。美國作為全球互聯網的中心,其站群服務器在全球范圍內都有著廣泛的應用。本文將探討美國站群服務優化的關鍵功能,以提升
    的頭像 發表于 01-25 11:56 ?354次閱讀
    主站蜘蛛池模板: 福利视频免费观看| 视频一区二区中文字幕| 2014天堂| 日本黄段视频| 色综合视频在线| 午夜精品久久久久久久四虎| 亚洲成在人线久久综合| 四虎影院欧美| 欧美特黄一区二区三区| 四虎影在永久地址在线观看| 午夜伦理片在线观看| 色综合久久久久综合99| 日本老师xxxxxxxxx79| 免费人成在线| 国产三及| 免费的黄色片| 国产特级| 天天色天天干天天| 国产女人又爽又大| 国产午夜免费视频片夜色| 成人免费久久精品国产片久久影院| 人人爱天天操| 2019天天操| 免费大片看黄在观看| 婷婷开心六月久久综合丁香| 青草午夜精品视频在线观看| 精品女视频在线观看免费| 欧美高清一区二区三| 国产精品va在线观看不| 国产精品亚洲四区在线观看| 午夜一级福利| 2o18国产大陆天天弄| 日本不卡视频一区二区三区| 天天噜噜噜| 国内精品久久久久影| 天天操天天射天天爽| 黄在线网站| 1024人成软件色www| 国产男女免费视频| 一级欧美日韩| 欧美一区二区三区在线|