1. 程式人生 > >異數OS 星星之火(一)-- 異數OS-織夢師雲 使用者使用手冊

異數OS 星星之火(一)-- 異數OS-織夢師雲 使用者使用手冊

.

異數OS 星星之火(一)-- 異數OS-織夢師雲 使用者使用手冊


##本文來自異數OS社群


github: https://github.com/yds086/HereticOS

異數OS社群QQ群: 652455784

異數OS-織夢師(訊息中介軟體 ,遊戲開發方向)群: 476260389

異數OS-織夢師-Xnign(Nginx方向)群: 859548384


文章目錄

介面簡要介紹

VM管理器區

這裡寫圖片描述
VM管理器區是介面登入後的首頁,列出當前服務代理中提供的異數OS機器例項(未來容器使用者者這裡是可用的容器例項),選擇一個線上主機,雙擊即可進入該主機的System-0 Container-0,標籤頁主機名,注意Container-0用於表示目標System空間的System空間許可權,不如可以列舉出當前System的所有線上容器資訊。
###工作空間簡介
這裡寫圖片描述


工作空間屬性頁名稱按照機器例項名+系統名+容器名構成,System-0 Container-0空間不帶系統名+容器名。

基礎命令簡要介紹

出於安全可擴充的考慮,基本命令只提供系統和容器服務的基礎操作,並不提供一個很大的工具命令連,如果需要提供豐富的命令,則需要寫一些系統服務來擴充支援,比如 SystemCtl,命令有作用空間範圍,分為系統空間命令,容器空間命令。
###系統空間命令
1.(StartSystem SystemID)
啟動一個支援的系統,目前測試平臺只開放提供三個系統例項,0是預設啟動的,剩下可啟動的系統是2,4,這兩個系統在網路路由關係上屬於網線直接互聯模式,目標系統啟動後會同時啟動對應的Container-0。
例項:啟動System 2,(StartSystem 2)

2.(Entry SystemID ContainerID)
啟動好目標系統,就可以用該命令登入目標系統容器了。
例項:進入System 2,Container 0,(Entry 2 0)

容器空間命令

1.(StartService ServiceName Parameter)
輸入服務名,啟動引數,啟動一個服務:
例項:啟動Xnign服務, (StartService Xnign “”)
2.(ServiceInput ServiceIDorServiceName Command)
給執行的指定服務輸入響應命令,服務通過執行時提供ServiceInput命令介面來動態響應使用者輸入的命令,如果是單例服務可以通過服務名來定向輸入,如果是多例項服務則通過服務ID來定向輸入。
例項: 使用SystemCtl服務查詢當前系統的容器資訊服務資訊。
(list (ServiceInput SystemCtl “info=container ls=container”) (ServiceInput SystemCtl “info=service ls=service”))
3.(CloseService ServiceID)
關閉目標服務,例如(CloseService 1)

目前提供的基礎服務簡要介紹

Xnign

Xnigx是一個httpserver,帶一個httpcache遠端rpc服務,啟動後監聽本地IP的79 80埠,79用於httpcache rpc服務。

XnignTest

Xnigx的http壓力測試工具

服務啟動引數:

  1. -dip指定Xnign服務的ip地址,例如 -dip=192.170.0.11
  2. -c指定http client的壓測執行緒數量。
  3. -sp 短連線壓測模式,沒有該引數則預設啟動為長連線壓測模式
  4. -ctl 表示啟動後進入命令列控制模式,沒有該引數則預設啟動後自動進入迴圈壓測模式,在預設無-ctl引數移動後,XnignTest啟動後通過rpc先對目標httpcache初始化注入待測的目標頁面內容,之後建立http client壓力測試執行緒池,-ctl模式啟動後,壓測層數不進行httpcache初始化,而只建立1個http client壓力測試執行緒,等到使用者配置壓測引數並啟動。
  5. -qosid設定壓測連結的qosid.
  6. -ps設定http cache初始化頁面的尺寸,預設為400頁面尺寸,目前最大設定1000.
  7. -libc 設定http cache初始化頁面庫數量。

命令列控制模式引數:

  1. -qosid設定壓測連結的qosid.
  2. -echo 指定echocgi測試的輸入字串,如 -echo=1234
  3. -pr 指示壓測過程中列印返回頁面的資料。
  4. -sp 短連線壓測模式
  5. -lp 長連線壓測模式
  6. -pc 指定壓測迴圈數量
  7. -start 開始壓測
  8. -stop 結束壓測

SystemCtl

系統資訊查詢工具,擴充shell系統命令工具鏈,提供目標系統容器空間的系統資訊,容器資訊,服務資訊,tcp連結資訊查詢等服務。
命令引數介紹:
SystemCtl提供三個型別的命令關鍵字分別是info,dump,ls,用於標明需要檢視的物件資訊型別,info主要指目標物件的靜態資訊,比如系統提供的服務版權版本資訊等。dump表示列印一些程式內部變數資訊,比如tcp連結的狀態資訊,ls表示物件的動態例項資訊。
具體如下:
info=container ls=container 列印活躍容器數量,活躍的目標容器IP資源。
info=service ls=service 列印當前系統容器提供的服務資訊以及服務例項資訊。

操作實戰

這個實戰例項,我們來分別建立兩個System,每個System建立兩個Container,分別跑Xnign,XnignTest,SystemCtl,來觀察結果。

1.在登入目標機器後,啟動系統2,系統4,並分別登入
(list (StartSystem 4) (Entry 4 0) (StartSystem 2) (Entry 2 0) )
2,在系統2的容器0空間啟動物理容器1,並登入。
(list (StartPhyContainer 1) (Entry 2 1) )
3.在系統2容器1空間,啟動Xnign服務。
(list (StartService Xnign “123”) )
4.在系統4容器0,建立容器1,並登入系統4容器1。
(list (StartPhyContainer 1) (Entry 4 1) )
5.啟動Xnign壓測服務XnignTest。
1.自動迴圈壓測模式 (list (StartService XnignTest “-dip=192.170.0.11 -c=128 -qosid=1”))
2.命令列控制壓測模式
(StartService XnignTest “-dip=192.170.0.11 -qosid=1 -ctl”)
(ServiceInput 2 “-pc=10 -lp -start”)

7.在任意系統空間觀察tcp連結狀態資訊。
1.啟動SystemCtl 服務 (StartService SystemCtl “”)
2.輸入tcp資訊查詢命令 (ServiceInput SystemCtl “dump=tcp ls=tcp”)
8.在任意系統空間觀察容器資訊和當前容器所屬服務資源等狀態資訊。
(list (StartService SystemCtl “”) (ServiceInput SystemCtl “info=container ls=container”) (ServiceInput SystemCtl “info=service ls=service”))
(list (ServiceInput 1 “info=container ls=container”) (ServiceInput 1 “info=service ls=service”))

樣例

在System-2 Container-1上開Xnign服務,在System-4 中建立4個容器,分別開啟XnignTest壓測服務,每服務100W連結,總計400W連結,可以看到每容器頻寬IO還是比較均衡的(目前按照連線數量做均衡,後期會加入QOS佇列)。
在這裡插入圖片描述

關於符號漢化

這是mylisp語言提供的特性,原子物件是漢化定義的,重新定義後即可中文輸入命令,注意目前每次容器登入都都需要自行引用漢化程式碼。
漢化如下 :

(list
(setg 命令列表) (setref 命令列表 list) (setg 啟動系統) (setref 啟動系統StartSystem)
(setg 登陸系統) (setref 登陸系統 Entry) (setg 啟動服務) (setref 啟動服務StartService)
(setg 關閉服務) (setref 關閉服務 CloseService) (setg 啟動物理容器) (setref 啟動物理容器StartPhyContainer)
(setg 服務輸入) (setref 服務輸入 ServiceInput) (setg 系統工具) (setref 系統工具SystemCtl)
)

輸入上述漢化程式碼後我們就可以中文輸入了,如下:

(命令列表 (啟動系統 0) (啟動系統 2) (登陸系統 2 0) )
(命令列表 (啟動物理容器 1) (登陸系統 2 1) )
(命令列表 (啟動服務 Xnign “123”) (啟動物理容器 2) (登陸系統 2 2))
(命令列表 (啟動服務 XnignTest “-dip=192.170.0.11 -c=128”) (服務輸入 1 “TestInput”))
(命令列表 (啟動服務 系統工具 “”) (服務輸入 SystemCtl “dump=tcp ls=tcp”) )
(命令列表 (啟動服務 系統工具 “”) (服務輸入 SystemCtl “info=container ls=container”) (服務輸入 系統工具 “info=service ls=service”))
(命令列表 (服務輸入 1 “info=container ls=container”) (服務輸入 1 “info=service ls=service”))
(命令列表 (關閉服務 1))