在线观看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

    瀏覽量

    24259
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86343

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    鴻蒙5開發寶藏案例分享---長列表性能優化解析

    鴻蒙長列表性能優化大揭秘!告別卡頓,實戰代碼解析來了! 大家好呀~今天在翻鴻蒙開發者文檔時,發現了個 性能優化寶藏案例 !官方居然悄悄放出了
    發表于 06-12 17:40

    鴻蒙5開發寶藏案例分享---性能優化案例解析

    鴻蒙性能優化寶藏指南:實戰工具與代碼案例解析 大家好呀!今天在翻鴻蒙開發者文檔時,意外挖到一個 性能優化寶藏庫 ——原來官方早就提供了超多實
    發表于 06-12 16:36

    HarmonyOS NEXT 原生應用/元服務-DevEco Profiler性能優化過程

    流程概覽 在開發應用時,開發者會對應用的運行情況有一個預期的指標,當應用在某些方面不能滿足預期的指標或者表現不佳時,意味著您的應用可能存在性能問題,需要對應用進行性能優化以達到您的預期。應用的
    發表于 02-19 15:28

    如何優化TCP協議的性能

    優化TCP協議的性能可以從多個方面入手,以下是一些關鍵的策略和方法: 一、調整TCP參數 TCP窗口大小 : 重要性 :TCP窗口大小是衡量TCP協議性能的一個關鍵參數,決定了無需等待
    的頭像 發表于 01-22 09:52 ?792次閱讀

    Supermicro高性能服務器量產供貨,優化多重工作負載

    Supermicro, Inc.近日宣布其搭載Intel Xeon 6900系列性能核架構處理器的高性能服務器已開始量產供貨。 這一系列服務器采用了多種升級后的創新技術,并結合了新型
    的頭像 發表于 01-21 11:00 ?440次閱讀

    【教程】DNS域名解析服務systemd-resolved使用指南

    1.關于DNS解析服務DNS(DomainNameSystem),即域名系統。一句話總結DNS解析服務功能就是,將域名轉換為IP地址。DNS解析
    的頭像 發表于 01-09 19:34 ?902次閱讀
    【教程】DNS域名<b class='flag-5'>解析</b><b class='flag-5'>服務</b>systemd-resolved使用指南

    NTP服務器的性能優化方法

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

    HarmonyOS Web開發性能優化指導

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

    如何優化SSR渲染性能

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

    AI大模型的性能優化方法

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

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

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

    如何優化Linux服務器的性能

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

    Linux服務性能查看方法

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

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

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

    OpenHarmony開機優化

    、磁盤I/O等,并以圖表形式展示出來。 使用方法 參考文檔:OpenHarmony性能調優工具—boochart_小~Q-Laval社區 通過Bootchart工具,開發者可以深入了解系統的啟動過程,并
    發表于 07-01 16:39
    主站蜘蛛池模板: 亚洲干综合 | 亚洲大成色www永久网址 | 日本高清一本视频 | 超级乱淫片67194免费看 | 一区二区三区免费精品视频 | 国产精品午夜久久久久久99热 | 人人草人| 手机在线看福利 | 日本不卡一区二区三区在线观看 | 欧美黄色片免费看 | 国产高清视频免费最新在线 | 四虎成人免费网站在线 | 午夜痒痒网 | 美女又爽又黄视频 | 日本一区二区在线免费观看 | 97人人射 | 国产精品福利一区二区亚瑟 | 欧美一区二区三区男人的天堂 | 91精品国产免费久久久久久青草 | 日本国产高清色www视频在线 | 亚洲第一色图 | 夜色伊人 | 好爽毛片一区二区三区四区 | 亚洲三级在线 | 三级在线观看视频 | 手机在线观看你懂得 | 干人人| 日韩欧美亚洲综合一区二区 | 日本一卡二卡≡卡四卡精品 | 天天摸夜夜添狠狠添2018 | 在线小毛片 | 成人欧美另类人妖 | 久久久噜噜噜久久网 | 添人人躁日日躁夜夜躁夜夜揉 | 丁香六月婷婷精品免费观看 | 亚洲综合成人网在线观看 | 日本aaaa| 国产午夜精品理论片久久影视 | 好大好硬好深好爽视频h | 三级在线观看 | 国产伦理一区二区三区 |