ceph的一些淺見 關於日誌(1)

2021-07-23 04:54:16 字數 1073 閱讀 7689

日誌是研究**的第一步。

ceph的日誌預設輸入到/var/log/ceph目錄下,可以進入到該目錄下,查詢相應資訊。

總共有20個等級的日誌輸出,從1~20。

例如我要調整osd.0的日誌輸出等級為15/15,使用下面的命令設定輸出等級

#ceph tell osd.0 injectargs --debug-osd 15/15

或者 #ceph daemon /var/run/ceph/ceph-osd.0.asok congfig set debug_osd 15/15

這個命令要在osd.0所在主機上才能生效。

兩個命令功能都是一樣的,個人比較習慣使用第二個命令。

#ceph daemon /var/run/ceph/ceph-osd.0.asok help

通過這個,能看到更多功能,包括讀寫操作在某些流程中,總共延時,平均延時,osd使用情況等。

15/15的設定值,左邊的15代表列印到log檔案中的日誌等級,右邊的15在一般情況下無用,它設定諸如assert等原因引起的程式崩潰後,記錄程式記憶體資訊等級,可以稱為in-memory log。

另外ceph的日誌被劃分成很多塊,舉個例子說。

我想要通過日誌了解mon的執行緒運**況,但調整debug_mon 為20/20後,列印出來的日誌太多了,很多資訊是我不想要的。那麼就可以不改變debug_mon ,而是改變debug_tp為20/20(tp即threadpool)。

通過 #ceph daemon /var/run/ceph/ceph-osd.0.asok congfig show | grep debug

來檢視全部的日誌等級。

ceph原始碼中,比如下面

ldout(cct, 1) << "tear_down_cache forcing close of dir " << dendl;

ldout是乙個巨集,括弧中的1為日誌等級,當你設定日誌輸出為10/5, 因為10 > 1 , 所以它就會輸出到日誌檔案中。

cct是乙個全域性物件,用了單例模型,它記錄了程序諸多資訊,比如配置檔案中的資訊。debug_osd,debug_mon等等,這些都是配置檔案中的配置引數。

關於Tcp的一些淺見

從小我們就被教育tcp三次握手,四次揮手云云.其實教科書把我們得思維限制死了,現實的狀況更加有趣.譬如伺服器端也會主動 say hi 客戶端和伺服器端會同時向對方發出syn.博主總結出以下幾條機器對於tcp訊號的反應,對所謂的 客戶端 和 伺服器端 都適用.建立連線的規則 1.收到 syn 必定回覆...

關於深度學習的一些淺見

就是更深層次的學習,它是機器學習的乙個子領域,就我個人理解而言,它就是乙個深度神經網路。就是擁有很多隱藏層的神經網路,通常只要隱藏層超過2個,我們就可以把這個神經網路定義為深度神經網路,當然,隱藏層的啟用函式應該是非線性的,如果是線性的,即使10000層,它的學習能力也僅僅相當於帶有乙個隱藏層的神經...

關於日誌的一些學習

為什麼要打日誌 在日常開發中 日誌起到至關重要的作用 因為專案上線後不允許你除錯,你只能通過log來分析問題。專案出問題時,你要能拿出log證明自己負責的部分沒有問題,如果是自己的問題,要從log裡快速找出錯誤原因 關於log級別 曾經在面試的時候被問到過的問題 直到忙到今天才有時間對這個問題進行詳...