1. 程式人生 > >系統技術非業餘研究 » 獲取Erlang系統資訊的程式碼片段

系統技術非業餘研究 » 獲取Erlang系統資訊的程式碼片段

從lib/megaco/src/tcp/megaco_tcp_connection.erl摘抄的程式碼, 挺詳細的關於系統的資訊:

    SchedId      = erlang:system_info(scheduler_id),
    SchedNum     = erlang:system_info(schedulers),
    ProcCount    = erlang:system_info(process_count),
    ProcLimit    = erlang:system_info(process_limit),
    ProcMemUsed  = erlang:memory(processes_used),
    ProcMemAlloc = erlang:memory(processes),
    MemTot       = erlang:memory(total),
    io:format("abormal termination: "
              "~n   Scheduler id:                         ~p"
              "~n   Num scheduler:                        ~p"
              "~n   Process count:                        ~p"
              "~n   Process limit:                        ~p"
              "~n   Memory used by erlang processes:      ~p"
              "~n   Memory allocated by erlang processes: ~p"
              "~n   The total amount of memory allocated: ~p"
              "~n~p",
              [SchedId, SchedNum, ProcCount, ProcLimit,
               ProcMemUsed, ProcMemAlloc, MemTot, Reason]),
    ok.

Post Footer automatically generated by wp-posturl plugin for wordpress.

No related posts.

相關推薦

系統技術業餘研究 » 獲取Erlang系統資訊程式碼片段

從lib/megaco/src/tcp/megaco_tcp_connection.erl摘抄的程式碼, 挺詳細的關於系統的資訊: SchedId = erlang:system_info(scheduler_id), SchedNum = erlang:sy

系統技術業餘研究 » 實驗Erlang語法對應的opcode 讓你對erlang理解更深

Erlang作為一門FP語言,和傳統的語言結構一樣, 有模組, 有函式, 有語句, 有判斷, 有迴圈, 還有特別的模式匹配。 那麼這些在底層是如何運作的。 我在底下給大家做個簡單的實驗,讓大家一窺內部的細節,讓大家寫碼的時候知道個大概。 erlang的VM作為register based的VM,

系統技術業餘研究 » 量化Erlang程序排程的代價

我們都知道erlang的基本哲學之一就是“小訊息大計算”,簡單的說就是儘可能的在訊息裡面攜帶完整的計算需要的資訊,然後計算要儘可能的多,最好遠超過訊息傳遞的代價。但是為什麼要這樣呢?erlang訊息傳送的效率是很高的, 參見這篇文章 Roughly speaking, I’m seeing 3.4

系統技術業餘研究 » The Erlang/OTP Roadmap(Erlang Factory London 2011)

剛結束不久的Erlang Factory London 2011我很關心的是The Erlang/OTP Roadmap, 每年由Kenneth Lundin宣佈的下一年的開發計劃,對我們掌握erlang團隊的開發進度和方向非常有幫助。 今年的ppt參看 這裡。 R15的開發包括: Line n

系統技術業餘研究 » 答erlang靜態資料查詢方式

解決這個問題有2種方式: 1.  函式匹配 2.  per module constant pool 針對這個問題我做了個試驗, 構建一個atom->int的查詢。 yu-fengdemacbook-2:~ yufeng$ cat t.erl -module(t). -export(

系統技術業餘研究 » erlsnoop erlang訊息監聽器(除錯erlang網路程式利器,支援最新的R13B04)

由於R13B以後, Erlang的分佈協議修改了格式, 添加了Atom Cache, erlsnoop在新版本下無法使用, 我特地打了patch, 使得它支援最新的版本,原始碼在附件中下載. 在erlang的郵件列表上看到: Have you tried putting a snoop to se

系統技術業餘研究 » erl_nif Erlang的ffi 擴充套件erlang的另外一種方法

我們知道擴充套件erl有2種方法, driver和port. 這2個方法效率都低,因為都要經過 port機制,對於簡單的模組,這個開銷有時候是不可接受的。這時候nif來救助了。今天釋出的R13B03已經支援了,雖然是實驗性質的。 erl_nif的代表API functions for an Erl

系統技術業餘研究 » 檢視Erlang執行期內部狀態的方法(基於R13B04)

erts_debug:get_internal_state是用來獲取Erlang執行期內部資訊的主要手段. 但是這個功能是用來給開發人員或者說需要了解系統內部細節的場合, 比如說系統調優. 在R13B04可以使用的選項有: 1. reds_left 2. node_and_dist_referen

系統技術業餘研究 » Inside Erlang VM(你需要知道的VM原理)

公司培訓用的文件, 對於Erlang的VM會有個大體的認識, 方便設計和使用Erlang. 點解下載pdf格式的文件 Post Footer automatically generated by wp-posturl plugin for wordpress.

系統技術業餘研究 » 為什麼Erlang是軟實時的

之前在微博上@老師木 同學發起了個關於Erlang搶佔式排程的討論,相對於其他語言Erlang是真正的搶佔式排程服務,這也是erlang能夠號稱軟實時的很重要的原因之一,另外二個原因分別是erlang的GC是針對每個程序的,每次GC通常只需要收集幾K或者幾十個物件;BIF是用trap機制來保證公平

系統技術業餘研究 » init_debug檢視系統boot過程

erl啟動的時候有個引數 -init_debug 作用是 Makes init write some debug information while interpreting the boot script. 參見erlang system_principles的1.3節:Boot Scripts

系統技術業餘研究 » 洞悉Linux系統軟硬體配置

我們在做伺服器的時候,老大扔給你一臺機器,要你在上面開發。通常伺服器軟體是非常依賴於系統的軟硬體的,軟體通常是要緊貼硬體的特性,如果我們不能瞭解機器的硬體,我們就無法高效的開發。 比如說想知道Linux的系統的版本,CPU有幾個,記憶體多少大, 機器什麼型號,Raid卡什麼型號,硬碟有幾個,檔案系

系統技術業餘研究 » 計算機各系統元件的吞吐量和延遲 看圖不說話

這個圖挺好的,就是比較粗線條,有些東西不太完整/準確,比如現有的USB實際上是480M/12M和1.5M三種速率(暫不算3.0和無線的) 另:幫樓主補充一下這類資料的意義:如果對各種匯流排的速率和IOPS如果沒有概念和預估,寫程式時就只能Compile & Pray了。 Reply:O

系統技術業餘研究 » 來自RHEL系統調優手冊的幾張經典圖

IO架構圖: 記憶體管理圖: 很容易誤解的socket buffer: Post Footer automatically generated by wp-posturl plugin for wordpress. (adsbygoo

系統技術業餘研究 » hwconfig檢視硬體資訊

最近經常要測試新硬體,瞭解硬體的具體型號和引數就非常重要,過去經常透過lspci, dmidecode, dmesg, ethtool, lshal, megacli等命令和各種/proc資訊來了解,需要對這些工具很熟悉, 貌似比較不方便和準確。 今天看到某同學用的hwconfig感覺資訊很專業,

系統技術業餘研究 » Erlang 17.5引入+hpds命令列控制程序預設字典大小

Erlang 17.5釋出引入控制程序預設字典大小的命令列引數: Erlang/OTP 17.5 has been released Written by Henrik, 01 Apr 2015 Some highlights of the release are: ERTS: Added co

系統技術業餘研究 » Erlang R16B03釋出,R17已發力

Erlang R16B03釋出了,通常03版本是bug fix版本,進入生產版本,官方的說明如下: OTP R16B03 is a service release with mostly a number of small corrections and user contributions. B

系統技術業餘研究 » Erlang R13B04 Installation

R13B04後erlang的原始碼編譯為了考慮移植性,就改變了編譯方式,以下是官方wiki上的安裝文件: 1. Cloning Here are the basic steps to build Erlang/OTP in the Git repository. Start by cloning:

系統技術業餘研究 » Erlang R15的記憶體delayed dealloc特性對訊息密集型程式的影響

在新的NUMA體系結構下,每個CPU都有自己的本地記憶體,如果要訪問其他CPU的記憶體,那算remote了,要走CPU之間的QPI通道,通常這樣速度會有40%的下降。 那麼對於多執行緒的程式來講,這個硬體的變化對軟體也有很大的影響。在多執行緒程式裡面,通常一個執行緒會為一個物件分配記憶體,然後把這

系統技術業餘研究 » Erlang R17新特性淺評

Erlang R17RC2 原始碼已經就緒, 參見 這裡 後續版本的釋出時間,官方的時間安排參見 這裡,摘抄如下: Preliminary dates for the upcoming release: Release: erts, emu,comp |Code stop