chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

010F5O38-0.png

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

010F55c7-1.png

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

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

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

    關(guān)注

    0

    文章

    221

    瀏覽量

    24763
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4882

    瀏覽量

    90287

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    使用PYTHON進行的跨平臺仿真

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

    [VirtualLab] 使用Python運行VirtualLab Fusion光學仿真

    Python編輯器的用戶: 請安裝保存在文件requirements.txt中的所有軟件包。最常見的方法之一是pip安裝: pip install -r requirements.txt 配置路徑 在VirtualLab Fusion中定義光學系統(tǒng) 查看完整案例: 光
    發(fā)表于 03-31 09:39

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

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

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

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

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

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

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

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

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

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

    Python運行本地Web服務并實現(xiàn)遠程訪問

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

    華納云香港服務器數(shù)據(jù)庫索引優(yōu)化策略

    在香港服務器環(huán)境中,數(shù)據(jù)庫索引優(yōu)化是提升整體性能的關(guān)鍵因素。隨著企業(yè)數(shù)據(jù)量的不斷增長,高效的索引管理能顯著提高查詢速度并降低服務器負載。本文將深入探討如何針對香港
    的頭像 發(fā)表于 10-16 17:06 ?615次閱讀

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

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

    從電機優(yōu)化性能飛升!ANSYS Maxwell 低頻電磁場仿真全解析

    動機進行優(yōu)化設計,以提高其效率和性能。傳統(tǒng)的設計方法往往需要進行大量的物理樣機試驗,成本高且周期長,而使用 ANSYS Maxwell 進行仿真分析可以在設計階段快速評估不同設計參數(shù)對電機性能
    發(fā)表于 07-24 16:52

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

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

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

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

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

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

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

    應用開發(fā)過程中注重內(nèi)存管理,積極采取措施來減少內(nèi)存占用,以優(yōu)化應用程序的性能和用戶體驗。 HarmonyOS提供了一些內(nèi)存管理的工具和接口,幫助開發(fā)者有效地管理內(nèi)存資源: onMemoryLevel接口
    發(fā)表于 05-21 11:27