存儲系統python(存儲系統中的ram)

本文目錄一覽:

運維為什麼要用Python

現階段,掌握一門開發語言已經成為高級運維工程師的必備計能,不會開發,你就不能充分理解你們系統的業務流程,你就不能幫助調試、優化開發人開發的程序, 開發人員有的時候很少關注性能的問題,這些問題就得運維人員來做,一個業務上線了,導致 CPU 使用過高,內存佔用過大,如果你不會開發,你可能只能查到進程級別,也就是哪個進程佔用這麼多,然後呢?然後就交給開發人員處理了,這樣咋體現你的價值?

另外,大一點的公司,服務器都上幾百,上千,甚至數萬台,這種情況下怎樣做自動化運維?用 SHELL 寫腳本 FOR 循環?呵呵,歇了吧, SHELL 也就適合簡單的系統管理工作。到複雜的自動化任務還得要用專門的開發語言。你可能說了,自動化管理有專門的開源軟件\監控也有,直接拿來用下就好了,但是現有的開源軟件如 puppet\saltstack\zabbix\nagio 多為通用的軟件,不可能完全適用你公司的所有需求,當你需要做定製、做二次開發的時候,你咋辦?找開發部門?開發部門不懂運維的實際業務邏輯,寫出來的東西爛爛不能用,這活最後還得交給運維開發人員來做。

其次,不會運維開發,你就不能自己寫運維平台\複雜的運維工具,一切要藉助於找一些開源軟件拼拼湊湊,如果是這樣,那就請不要抱怨你的工資低,你的工作不受重視了。

為什麼要學 PYTHON ?

PYTHON 第一是個非常牛 B 的腳本語言, 能滿足絕大部分自動化運維的需求,又能做後端 C/S 架構,又能用 WEB 框架快速開發出高大上的 WEB 界面,只有當你自已有能力做出一套運維自動化系統的時候,你的價值才體現出來,你才有資格跟老闆談重視, 否則,還是老老實實回去裝機器吧。

運維開發為什麼要用 PYTHON ?

Good question, 為什麼不用 PHP , JAVA , C++ , RUBY ,這裡我只能說,見人見智, 如果你碰巧已經掌握了除 PYTHON 之外的其它語言,那你愛用啥用啥,如果你是一個連 SHELL 都還沒寫明白的新手,想學個語言的話,請用 PYTHON , 為什麼呢?首先, PHP 是跟 PYTHON 比的最多的,其實他倆根本就不用比,為什麼呢?兩個語言適用性不同, PHP 主要適用於 WEB 開發,可以迅速的做出中小型,輕量級的 WEB 網站,但後端嘛,基本還是要藉助其它語言, 藉助什麼語言呢? SHELL ? PYTHON ?呵呵。 而 PYTHON 呢, 是個綜合語言, 前後端都可以,單拿出來比 WEB ,也一點不比 PHP 差,但為什麼WEB方向上 PHP 比 PYTHON 要火? 先入為主嘛, PHP 90 年代誕生就是做 WEB 的, PYTHON2000 年後才出現 WEB 框架,但論優秀程度上, PYTHON 的 WEB 框架基本上出其無左,至少是跟 PHP 比。

那 JAVA 呢?好吧,一個臃腫\中庸\豪無新意的語言,還是老老實實用它來做 ERP 吧,搞個運維小平台,用 JAVA 真心沒啥必要,在我看來, JAVA 就是穩定的中年男人,穩定\成熟\禿頂,而 PYTOHN 代表的就是青春, 簡潔\快\乾淨\帥!

C++ \ C ,這個嘛,我只能說,如果你會了 PYTHON, 又會 C 的話,那你會更吃香,但是不會 C 的話,其實也無大礙,基本上做運維的人,搞搞 C 就是為了來裝 B 的,因為多數情況下你都到不了看系統底層源碼的程度。

RUBY ,小日本開發的,還不錯,風格跟 PYTHON 有點像,因為 ruby onrails 出了名,國外用的比較多,國內,放心吧,沒戲, PYTHON 已經把它的想象空間都占死了。

當然還有新的語言 GO , 有些搞運維的看見做開發的人員搞 GO ,也想湊熱鬧,覺得是未來,我想說,別瞎沒事跟風, GO 再成功,也不會變成運維開發語言。

有些人覺得 PYTHON 效率底,說他不能支持多線程, OH ,好吧,這個還有點說對了,但是我想問,看我這篇文章的有幾個做過搜索引擎開發?有幾個做個上億 PV 的並髮網站開發? 有幾個看過 LINUX 內核源碼?如果沒有,請別瞎跟着傳了,知道 PYTHON 為什麼不支持多線程嗎?這句話問錯了,其實 PYTHON 支持多線程,只是不支持多 CPU 多線程,也就是一個程序 spawn 出來的多線程只能佔用一個 CPU ,但是為什麼呢?噢,因為 GIL , GIL 是什麼東東,請自行補腦。。。但是你非得用多線程嗎?你可以用多進程呀,再牛 B 你還可以用協程呀,這些 PYTOHN 支持的都很好呀,如果你的程序邏輯不好,搞個多線程也快不起來。我認識一個博士講過一句話,我覺得不錯,他說,程序效率高低, 80% 都是寫程序的人決定了,語言本身就占 20% ,所以下次有人再說 PYTHON 效率低的時候,請讓他先回去自己檢查下自己的程序多了多少無用的邏輯、循環等等。 這個博士自己用 PYTHON 寫的 WEB 程序,一台服務器每天能處理上億請求,一秒並發近兩萬, 什麼 WEB 框架這麼牛 B ? 別問它是誰, 它叫 tornado 。

PYTHON 能否自學?

當然可以,什麼都可以自學,前提是你得能學得會,見過 N 多菜鳥踏上上自學的不歸路,他媽的什麼都能自學的話,還用大學幹什麼?自己在家鱉不就行了?動不動就說 PYTHON 是個腳本語言,自己看看就不會了,說這話的只可能有兩種人,一種是高手,一種是 SB ,對於高手來講,他肯定已經會其它語言, PYTHON 在這種情況下,自學當然就很容易學會,幾年前我剛接觸 PYTHON 時,代碼遇到問題,找了個開發的哥們幫調試,哥們幫調了十幾分鐘就搞定了,結果人家以前一句 PYTHON 代碼也沒寫過,為什麼,因為語言都有相通之處,一門掌握好了,其它門自己學學就會了。但對於新手來講,沒任何語言基礎就開始自學,那麼恭喜你,菜鳥們見此文章為證,從今天開始自學,一年後,你要是能自己做出個軟件來,來找我要一千塊錢。 哈哈,真的。 基本上自學是屬於專業人員乾的事情,就像會一門樂器了,自己學下就可能學會另一門,但我之前沒音樂基礎,跟着老師都沒把吉它學會。

所以奉勸沒基礎又想學 PYTHON 的同學,花點錢去報個班學吧,拿錢換時間,時間是生命,錢沒了可再掙錢,時間過去了就再也不會回來,如果你不信邪,非要自己學,那我佩服你的勇氣,不過自己試試就知道了。

說了這麼多,只想告訴那些迷茫不知所措該學什麼語言的新手們, 在你還沒學好走路的時候,不要老想着,將來我當上老闆了,我是開寶馬呢?還是開奔馳呢?先學會騎自行車吧。。。

轉載

python如何進行內存管理

Python的內存管理主要有三種機制:引用計數機制,垃圾回收機制和內存池機制。

引用計數機制

簡介

python內部使用引用計數,來保持追蹤內存中的對象,Python內部記錄了對象有多少個引用,即引用計數,當對象被創建時就創建了一個引用計數,當對象不再需要時,這個對象的引用計數為0時,它被垃圾回收。

特性

1.當給一個對象分配一個新名稱或者將一個對象放入一個容器(列表、元組或字典)時,該對象的引用計數都會增加。

2.當使用del對對象顯示銷毀或者引用超出作用於或者被重新賦值時,該對象的引用計數就會減少。

3.可以使用sys.getrefcount()函數來獲取對象的當前引用計數。多數情況下,引用計數要比我們猜測的大的多。對於不可變數據(數字和字符串),解釋器會在程序的不同部分共享內存,以便節約內存。

垃圾回收機制

特性

1.當內存中有不再使用的部分時,垃圾收集器就會把他們清理掉。它會去檢查那些引用計數為0的對象,然後清除其在內存的空間。當然除了引用計數為0的會被清除,還有一種情況也會被垃圾收集器清掉:當兩個對象相互引用時,他們本身其他的引用已經為0了。

2.垃圾回收機制還有一個循環垃圾回收器, 確保釋放循環引用對象(a引用b, b引用a, 導致其引用計數永遠不為0)。

內存池機制

簡介

在Python中,許多時候申請的內存都是小塊的內存,這些小塊內存在申請後,很快又會被釋放,由於這些內存的申請並不是為了創建對象,所以並沒有對象一級的內存池機制。這就意味着Python在運行期間會大量地執行malloc和free的操作,頻繁地在用戶態和核心態之間進行切換,這將嚴重影響Python的執行效率。為了加速Python的執行效率,Python引入了一個內存池機制,用於管理對小塊內存的申請和釋放。

內存池概念

內存池的概念就是預先在內存中申請一定數量的,大小相等的內存塊留作備用,當有新的內存需求時,就先從內存池中分配內存給這個需求,不夠了之後再申請新的內存。這樣做最顯著的優勢就是能夠減少內存碎片,提升效率。內存池的實現方式有很多,性能和適用範圍也不一樣。

特性

1.Python提供了對內存的垃圾收集機制,但是它將不用的內存放到內存池而不是返回給操作系統。

2.Pymalloc機制。為了加速Python的執行效率,Python引入了一個內存池機制,用於管理對小塊內存的申請和釋放。

3.Python中所有小於256個字節的對象都使用pymalloc實現的分配器,而大的對象則使用系統的 malloc。

4.對於Python對象,如整數,浮點數和List,都有其獨立的私有內存池,對象間不共享他們的內存池。也就是說如果你分配又釋放了大量的整數,用於緩存這些整數的內存就不能再分配給浮點數。

python 最大能用多大存儲空間

這個是操作系統的限制,跟python沒有直接關係,因為python是沒有限制的。

32位的系統:windows下單個進程可以用到2G內存;linux下單個進程可以用到4G內存。

64位的系統:

windows下單個進程Intel Itanium-based可用到7TB,Windows 8.1和Windows Server 2012

R2:可用128,其它版本TBx64: 8 TB

但是不同版本windows系統可用的最大物理內存數也有限制,比如64位win7家庭基本版只能認出8G內存,專業版以上能認出192G內存。

linux下不同的發行商,或者不同的內核編譯參數也會有也不同的限制,但都是按T計的。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/284932.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:42
下一篇 2024-12-22 15:42

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論