Minecraft(我的世界)中文論壇

 找回密碼
 注冊(register)
查看: 16324|回復: 174
打印 上一主題 下一主題

[轉載插件] [管理]Spark —— Spark性能分析器[1.8-1.14]

  [復制鏈接]
GiNYAi 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
6901
鉆石
性別
保密
注冊時間
2012-3-31
查看詳細資料
跳轉到指定樓層
樓主
發表于 2018-10-7 19:05:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
服務端插件
英文名稱: Spark
中文名稱:
插件來源: 轉載
適用服務端: |CraftBukkit| |Spigot| |Sponge| |BungeeCord| |其它| 
插件類型: 管理 
語言支持: English 
適用版本: 1.14.X 1.13 1.12 1.11 1.10 1.9 1.8 
前置Mod|插件: 無前置插件
下載地址: https://ci.lucko.me/job/spark/
原帖地址: https://github.com/lucko/spark

您尚未登錄,立即登錄享受更好的瀏覽體驗!

您需要 登錄 才可以下載或查看,沒有帳號?注冊(register)

x
本帖最后由 GiNYAi 于 2019-9-15 10:23 編輯


Spark是一個基于sk89q的WarmRoast profiler的分析插件.


Bukkit/Sponge/BungeeCord/Velocity應該使用spark.jar,而純Forge/Fabric應該使用spark-forge.jar/spark-fabric.jar



它能做什么?

spark由若干個部分組成,接下來會分別介紹每個部分。

CPU側寫(進程分析)內存檢查(堆分析與GC監視)服務器健康報告

  • CPU側寫(進程分析)
    這是spark最主要的部分,一個基于WarmRoast的輕量的CPU分析與Web視圖.
    采樣器記錄每個行為消耗運算時間的統計數據,這些統計數據可以用來分析出服務器的某個部分,或者某個插件存在的潛在的性能問題.
    數據記錄之后,可以在瀏覽器中顯示一個函數調用關系圖,來幫助分析.
    一個像spark中所包含這個一樣的分析器并,不能"如同魔法般地"修復卡頓--他只是一個幫助分析性能問題原因的工具.
  • Tick監視器(監視服務器tick)
    這個模塊可以監視游戲服務器處理"ticks"的速度,它可以觀察趨勢并且分辨出與其他系統事件(垃圾回收,游戲行為,等)相關的性能問題的本質.
  • 內存檢查(堆分析與GC 監視)
    這部分可以生成系統內存使用快照,包含潛在地存在問題的類,其占據空間的大小,與其相關的對象實例數量的信息.
    與其他具有相似功能的分析器不同,它并不大上完整的替代內存分析工具,它指提供一個簡單的概覽.
    spark同樣包含提取完整的Hprof快照的功能,這些快照可以使用傳統的內存分析工具分析.
  • 服務器健康報告
    提供關于服務器當前"健康"狀態的信息,可以使用游戲內命令查看.輸出的信息包含:
        ·服務器TPS(ticks per second 每秒tick的數量)的信息,比/tps命令顯示的要準確的多.
        ·服務器進程的CPU占用,以及整個系統的CPU占用.
        ·內存使用
        ·硬盤使用

spark vs WarmRoast
WarmRoast 功能
這些功能來自上游的"WarmRoast"項目.
  • 視圖是完全建立在Web上的,不需要任何特殊的軟件,只需要一個Web瀏覽器!
  • 輸出是按照方法調用的棧的形式組織,使得輸出很容易理解
  • 節點可以展開或者折疊來顯示時間信息與更多子節點.
  • 可以一眼看出一個方法占全部CPU使用的比例.
  • 可以看到每個方法占CPU時間在父方法中的百分比
  • 可以調整的取樣頻率.
  • 對目標程序(服務器)幾乎沒有任何消耗或副作用


spark 功能
WarmRoast出色的工具,但是他有幾個缺陷.
  • 某些人幾乎無法使用它, 因為要使用它, 你需要能夠直接使用SSH(或者等價的方式)連接你的服務器.(面板服無法使用)
  • 設置與開始比較笨拙 - 首先你需要連接到你要測試的機器上.然后你需要記下你服務器進程的PID,或者在當前運行的VM列表中找出你要測試的服務器(同時運行多個服務器的時候這并不輕松). - 然后讓分析器運行一小段時間,再瀏覽應用為你呈現的網頁.
  • 與其他開發者或者管理員分享分析數據并不容易.
  • 你需要在你的服務器上安裝JDK.


我嘗試在spark中處理這些缺點
  • 分析由游戲內或者控制臺命令控制.你并不需要直接訪問服務器機器 - 只需要向平常一樣安裝插件就可以了.
  • 數據會被上傳到一個像"pastebin"一樣的網站來查看,這樣就不需要一個臨時的web服務器,你可以簡單的把你的分析數據與其他人分享!
  • 它并不需要安裝特殊的Java組件或者提供JDK路徑


Spark與其他分析工具相比的優點
  • MCP (Mod Coder Pack) 反混淆映射可以通過瀏覽器直接應用到方法名上
    • 這對于Bukkit映射,和Sponge/Forge (Searge) 映射同樣有效
  • 不需要任何特殊的軟件來查看輸出,只需要一個Web瀏覽器.

Spark vs 真實采樣
Spark(WarmRoast)分析器使用采樣技術.一個采樣分析器通過定期觀察目標程序調用棧來確定特定行為的頻率.實踐中,采樣分析器經常能夠提供更清晰的信息,因為他們并不中斷目標程序,因此并不會有那么多的副作用.
采樣分析器通常數值上不如其他分析方法(例如的性能分析器)精確,但是可以讓目標程序幾乎滿速運行.
結果的數據并不是確切的,但是是統計近似的.輸出的準確性會隨著采樣時間的長度增加, 或者采樣更頻繁而增加.
Spark vs "Minecraft Timings"
Aikar's timings 系統 (Spigot 與 Sponge 內置) 與 spark/WarmRoast接近, 實際上它同樣分析服務器的CPU活動.
Timings通常會比Spark更精確,但是(可以說?!)用途更小,因為每個掃描區域需要人為定義.
例如,Timings可能會發現插件X的某個監聽器消耗了大量時間處理PlayerMoveEvent,但是他不會告訴你這個處理中的哪個部分是緩慢的.而spark/WarmRoast則 顯示這些信息,指出導致性能問題的方法調用.
安裝
只需把文件 spark.jar 放到你的服務器的plugins/mods文件夾下,然后重啟服務器.
命令
所有的命令都需要spark權限.
你需要在BungeeCord,Velocity和Forge客戶端上使用/sparkb,/sparkv,/sparkc作為替代.


/spark sampler
開啟一個新的CPU側寫操作。
參數
  • --info
    • 如果當前有正在運行的側寫,輸出其信息.
  • --stop
    • 結束當前正在運行的側寫操作,上傳結果數據,并返回視圖的鏈接.
  • --cancel
    • 結束當前正在運行的側寫操作,放棄所有記錄的數據,而不會上傳.
  • --timeout <timeout>
    • 指定側寫自動停止的時間,單位為秒.
    • 如果未指定,側寫會即刻開始,并且一直運行只到手動停止
  • --thread <thread name>
    • 指定需要側寫的線程的名字d.
    • 如果未指定,將只會側寫主服務器線程"server thread".
    • 你可以使用*來表示希望側寫所有的線程
  • --regex
    • 通過正則表達式來指定需要側寫的線程.
    • Specifies that the set of threads defined should be interpreted as regex patterns.
  • --combine-all
    • 指定 所有線程應當被合成到一個節點中.
  • --not-combined
    • 指定 同一個池中的線程不應當被合成到一個節點中.
  • --interval <interval>
    • 設定采樣的間隔,單位為毫秒.
    • 更低的的值會提升結果的準確性,但是可能會導致服務器緩慢.
    • 如果未指定,默認的間隔是10毫秒.
  • --only-ticks-over <tick length millis>
    • 設定只包括一個tick消耗了超過指定時間的數據才會被記錄
  • --include-line-numbers
    • 指定 方法調用的行數是應當被記錄并且包含在輸出中.



/spark tps
輸出服務器的tps(ticks per second)的信息.


/spark healthreport
為服務器生成一個健康報告
參數
  • --memory
    • 設定是否包含JVM內存的額外信息



/spark tickmonitoring
開啟/關閉 tick監視系統
參數
  • --threshold <percentage increase>
    • 設定報告的閾值,單位是超出平均tick時間的百分比
  • --without-gc
    • 設定 不再顯示GC提示



/spark heapsummary
建立一個新的內存(堆)dump 總結,上傳結果數據,返回一個視圖的鏈接。
參數
  • --run-gc-before
    • 設定 在記錄數據之前,Spark應該建議系統執行一次垃圾回收



/spark heapdump
創建一個新的堆Dump(.hprof 快照)文件,并且保存到硬盤.
參數
  • --run-gc-before
    • 設定 在記錄數據之前,Spark應該建議 系統執行一次垃圾回收
  • --include-non-live
    • 設定是否包含 ”已經死亡“ 的對象。(無法被其他對象訪問的對象)
  • --xz
    • 使用LZMA2 (.xz)壓縮堆Dump。(比Gzip慢,但是有更好的壓縮率)
  • --lzma
    • 使用LZMA (.lzma)壓縮堆Dump。(比起這個更喜歡使用xz)
  • --gzip
    • 使用gzip (.gz)壓縮堆Dump。(比LZMA2快,但是壓縮率更差)



/spark activity
Prints information about recent activity performed by the plugin.

License
spark is a fork of WarmRoast, which is licensed under the GNU General Public License.
Therefore, spark is also licensed under the GNU General Public License.
協議
Spark是 WarmRoast 的一個分支,  WarmRoast是licensed under the GNU General Public License.
因此,Spark也是GNU General Public License 協議.

本文翻譯自https://github.com/lucko/spark/blob/master/README.md

來自群組: Power of Spongie

評分

參與人數 10人氣 +22 金粒 +74 收起 理由
海螺螺 + 4 是咸魚姐姐
2431267050 + 1 MCBBS有你更精彩~
Arasple + 2 MCBBS有你更精彩~
746671016 + 1 233
2048028141 + 2 MCBBS有你更精彩~
酷車手BB彈 + 3 MCBBS有你更精彩~
+ 4 + 44 MCBBS有你更精彩~
1250305944 + 2 Ssssssssssssssssssss
luenlin + 2 + 30 咸魚姐姐nb
q879492767 + 1 MCBBS有你更精彩~

查看全部評分

帖子永久鏈接: 

Minecraft中文論壇 - 論壇版權1、本主題所有言論和圖片純屬會員個人意見,與本論壇立場無關
2、本站所有主題由該帖子作者發表,該帖子作者享有帖子相關版權
3、其他單位或個人使用、轉載或引用本文時必須同時征得該帖子作者的同意
4、帖子作者須承擔一切因本文發表而直接或間接導致的民事或刑事法律責任
5、本帖若有內容轉載自其它媒體,不代表本站贊同其觀點和對其真實性負責
6、若本帖涉及任何版權問題,請立即告知本站,本站將及時予以刪除并致以最深的歉意
7、Minecraft(我的世界)中文論壇管理員和版主有權不事先通知發貼者而刪除本文

117779284 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
5589
鉆石
性別
保密
注冊時間
2014-4-28
查看詳細資料
沙發
發表于 2018-10-7 20:18:38 | 只看該作者
完全不懂。但看起來比較內涵·

評分

參與人數 1人氣 +2 收起 理由
2048028141 + 2 MCBBS有你更精彩~

查看全部評分

回復

使用道具 舉報

中華博 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
5197
鉆石
性別
保密
注冊時間
2014-7-20
查看詳細資料
板凳
發表于 2018-10-20 21:52:22 | 只看該作者
timings on

評分

參與人數 1人氣 +2 收起 理由
2048028141 + 2 MCBBS有你更精彩~

查看全部評分

回復

使用道具 舉報

神の手 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
4111
鉆石
性別
保密
注冊時間
2013-12-9
查看詳細資料
地板
發表于 2018-10-21 17:14:37 | 只看該作者
期待進一步的掃盲使用教程 降低使用門檻

評分

參與人數 1人氣 +2 收起 理由
2048028141 + 2 MCBBS有你更精彩~

查看全部評分

回復

使用道具 舉報

夕離丶 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
2672
鉆石
性別
保密
注冊時間
2017-8-8
查看詳細資料
5#
發表于 2018-10-21 17:28:28 | 只看該作者
測試了一下u端1.7.10是可使用的。/spark之類的指令可以輸出其他的就不知道了

評分

參與人數 1人氣 +2 收起 理由
2048028141 + 2 MCBBS有你更精彩~

查看全部評分

回復

使用道具 舉報

qiangshuiya 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
1334
鉆石
性別
保密
注冊時間
2017-7-11
查看詳細資料
6#
發表于 2018-11-6 08:57:55 | 只看該作者
贊一個,下載來試試看分析
回復

使用道具 舉報

LoganA 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
104
鉆石
性別
保密
注冊時間
2018-11-6
查看詳細資料
7#
發表于 2018-11-6 13:06:20 | 只看該作者
有用 頂一個
回復

使用道具 舉報

a2980711338 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
726
鉆石
性別
保密
注冊時間
2017-3-24
查看詳細資料
受到警告 8#
發表于 2018-11-6 16:36:22 | 只看該作者
有點牛逼 這個我就收下了 感謝大大
回復

使用道具 舉報

a2980711338 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
726
鉆石
性別
保密
注冊時間
2017-3-24
查看詳細資料
受到警告 9#
發表于 2018-11-6 16:41:50 | 只看該作者
有點牛逼 這個我就收下了 感謝大大
回復

使用道具 舉報

meifanguo 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
527
鉆石
性別
保密
注冊時間
2015-11-21
查看詳細資料
10#
發表于 2018-11-24 14:26:10 | 只看該作者
強大的插件可怕
回復

使用道具 舉報

Setyo 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
50
鉆石
性別
保密
注冊時間
2015-6-23
查看詳細資料
11#
發表于 2018-11-25 18:35:49 | 只看該作者
太有用了
回復

使用道具 舉報

1723624171 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
3038
鉆石
性別
保密
注冊時間
2018-11-10
查看詳細資料
12#
發表于 2018-11-26 16:48:06 | 只看該作者
很有用插件,感想樓主分享插件!
回復

使用道具 舉報

aszxgggg 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
447
鉆石
性別
保密
注冊時間
2016-4-16
查看詳細資料
13#
發表于 2018-11-30 21:28:22 | 只看該作者
以后可能會用到
回復

使用道具 舉報

5258315 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
100
鉆石
性別
保密
注冊時間
2016-2-9
查看詳細資料
14#
發表于 2018-12-9 11:17:52 | 只看該作者
感謝大佬這么吊的插件!!!!!!!
回復

使用道具 舉報

wuxiaodong123 當前離線
帖子
主題
精華
貢獻
最后登錄
1970-1-1
愛心
積分
566
鉆石
性別
保密
注冊時間
2017-2-16
查看詳細資料
15#
發表于 2018-12-9 11:58:49 | 只看該作者
MCBBS有你更精彩~
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊(register)

本版積分規則

Archiver|小黑屋|Mcbbs.net ( 京ICP備15023768號-1 ) | 京公網安備 11010502037624號 | 手機版

GMT+8, 2019-11-18 02:32 , Processed in 0.052307 second(s), Total 23, Slave 22 queries , Gzip On, MemCached On.

"Minecraft"以及"我的世界"為Mojang Synergies AB的商標 本站與Mojang以及微軟公司沒有從屬關系

© 2010-2019 我的世界中文論壇 版權所有 本站原創圖文內容版權屬于原創作者,未經許可不得轉載

快速回復 返回頂部 返回列表
20码必中