diff --git a/package-lock.json b/package-lock.json index 352870b..03f7ebc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,9 +25,9 @@ } }, "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.1.tgz", + "integrity": "sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==", "license": "MIT", "engines": { "node": ">= 10" @@ -247,9 +247,9 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", + "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -630,9 +630,9 @@ } }, "node_modules/dompurify": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", - "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.12.tgz", + "integrity": "sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -868,18 +868,18 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", + "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -919,16 +919,16 @@ } }, "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, "engines": { "node": ">= 6" @@ -1122,9 +1122,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -2293,9 +2293,19 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -2504,9 +2514,9 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2556,19 +2566,35 @@ } }, "node_modules/morgan": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz", - "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.11.0.tgz", + "integrity": "sha512-zSkVu3t18r39pw4ixfBKvfZi3y2UOqr7d4WYwcj3m8nXpEQK4rPO6GLzs/CExoRgmX3y9EjmmcXqv6jq0SK46g==", "license": "MIT", "dependencies": { "basic-auth": "~2.0.1", "debug": "2.6.9", "depd": "~2.0.0", - "on-finished": "~2.3.0", + "on-finished": "~2.4.1", "on-headers": "~1.1.0" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, "node_modules/ms": { @@ -2839,9 +2865,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "license": "MIT", "engines": { "node": ">=8.6" @@ -3537,9 +3563,9 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "license": "MIT", "engines": { "node": ">=10.0.0" diff --git a/source/_posts/2023/08/mcsm.md b/source/_posts/2023/08/mcsm.md index 88d9bec..9976334 100644 --- a/source/_posts/2023/08/mcsm.md +++ b/source/_posts/2023/08/mcsm.md @@ -14,39 +14,6 @@ date: 2023-08-19 16:05:12 由于MCSM10的更新,本教程已经过期 {% endnote %} -# 使用雨云游戏云面板服 - -使用mcsm面板搭建我的世界服务器其实非常简单,只需要跟着教程执行命令就好了,但如果您认为自己没有这种能力,这里有一个简单的办法:(有能力的直接跳过这一部分) - -在雨云购买游戏云面板服,最低只要0.9元一天,还有雨云的按天计费以及独家动态计费,不开服不收费,闲时省钱,非常适合学生的需求,甚至还可以免费领取面板服(但需要抢,手慢无,蹲点抢就行)。 - -## 购买 - -为了防止部分人连购买都不会,这里也写上教程 - -注册我就不说了,如果你连注册都不会就划走吧,直接花钱找人给你搭建。 - -注册完成后点击官网右上角的“进入控制台” - -![1.png](/img/2023/8/19/mcsm/1.png) -接着如图操作: -![2.png](/img/2023/8/19/mcsm/2.png) -![3.png](/img/2023/8/19/mcsm/3.png) -![4.png](/img/2023/8/19/mcsm/4.png) - -## 加入游戏 - -在控制台进入mcsm管理面板开启服务器,控制台会给你连接地址,填入我的世界“多人游戏”的游戏地址(点击添加游戏后从上往下数第二个框框)中即可。 -![5.png](/img/2023/8/19/mcsm/5.png) -![6.png](/img/2023/8/19/mcsm/6.png) -![7.png](/img/2023/8/19/mcsm/7.png) - -## 注意 - -我认为上述教程完全没有必要,雨云的操作已经足够简便了,如果你需要上述教程的话我还是建议你尽早放弃,因为一旦出现问题你根本就无法解决。 - -了解更多可以去雨云百科:[最新雨云百科/游戏云 VPS话题 - 雨云论坛 (](https://forum.rainyun.com/c/wiki/rgskvm/17)[rainyun.com](https://rainyun.com/)[)](https://forum.rainyun.com/c/wiki/rgskvm/17) - # linux服务器 服务器可以购买云服务器,也可以使用内网穿透,云服务器推荐雨云游戏云,按天计费以及独家动态计费 @@ -124,7 +91,7 @@ wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup.sh | bash 使用nat模式需要映射端口: -访问: +访问:`` ## 创建服务器 diff --git a/source/_posts/2026/07/mcsm-container.md b/source/_posts/2026/07/mcsm-container.md new file mode 100644 index 0000000..4e25351 --- /dev/null +++ b/source/_posts/2026/07/mcsm-container.md @@ -0,0 +1,115 @@ +--- +title: MCSM容器化功能详解 +tags: +- 我的世界 +- 容器 +- Docker +- MCSM +categories: +- MCSM +permalink: /articles/2026/mcsm-container.html +date: 2026-07-13 21:30:23 +--- + +在MCSM中有一个不起眼的功能——容器化,但实际上这个功能非常好用,可以很方便的隔离环境,限制性能,指定核心,但很多人都不会用 + +## 1.镜像选择 + +由于Openjdk的Docker镜像已经不再维护,现在流行的都是由各大知名大厂、社区基于 OpenJDK 编译并长期维护的Tck 兼容认证生产级 JDK 镜像,我比较推荐使用 [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin),这是由Eclipse 基金会 (红帽、IBM等)维护的镜像 +![image|690x480](/img/2026/mcsm-container/486092ff0cd62424cc24725080bae9297db8309f.png) + +使用时根据我的世界版本选取合适的镜像版本即可,比如在Tags中搜索`11-jdk`,`21-jdk`等版本 + +## 2. 启用容器化 + +在实例控制界面点击`应用实例设置-容器化`,选择“启用Docker容器” +![粘贴的图像|687x499](/img/2026/mcsm-container/e36624164fb8ad217959f7c717047d447d1b0d0c.jpeg) +然后在右侧选择(如果你已经将镜像拉取到本地)或填写你上一步选择的镜像 + +其他默认的设置不需要修改,在网络模式方面,我比较推荐使用bridge网桥,这样可以比较方便的管理端口映射,而不是使用host模式每次修改端口都要去修改配置文件。 + +然后在`开放端口`处点击编辑,新增一条配置(内部端口一般是25565,如果你在配置文件中修改过就使用你改过的端口) +![粘贴的图像|690x469](/img/2026/mcsm-container/8a53e835175a4935aeb7e4ae09ed19b8e3dc57e0.jpeg) + +下面的容器名这里可以留空让MCSM自动生成一坨,当然也可以自己写一个你看着顺眼的 + +## 3.容器限制 + +使用容器化后可以很方便的限制容器性能,在`应用实例设置-容器限制`可以进行这项配置 +![粘贴的图像|690x469](/img/2026/mcsm-container/9879649502c23cf526b8bf0a42dfb983416b17c5.jpeg) +比较基础的是限制最大内存,防止服务端在某些情况下把物理机干死 + +需要注意的是这里的CPU 总和使用率,指的是CPU每个核心使用率的和,比如200% +就是占用了两个核心 + +### 指定 CPU 计算核心 + +对于一些采用大小核架构的消费级 CPU,我们还可以使用指定 CPU 计算核心,在 linux 服务器上运行`lscpu -e`可以获取每个 CPU 核心的详细信息,比如我的i9-14900kf的输出是这样的: + +```shell +➜ ~ lscpu -e +CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ + 0 0 0 0 0:0:0:0 是 5700.0000 800.0000 5700.0000 + 1 0 0 0 0:0:0:0 是 5700.0000 800.0000 800.0000 + 2 0 0 1 4:4:1:0 是 5700.0000 800.0000 5700.0000 + 3 0 0 1 4:4:1:0 是 5700.0000 800.0000 800.0000 + 4 0 0 2 8:8:2:0 是 5700.0000 800.0000 5700.0000 + 5 0 0 2 8:8:2:0 是 5700.0000 800.0000 5657.8062 + 6 0 0 3 12:12:3:0 是 5700.0000 800.0000 5700.0000 + 7 0 0 3 12:12:3:0 是 5700.0000 800.0000 800.0000 + 8 0 0 4 16:16:4:0 是 6000.0000 800.0000 5700.0000 + 9 0 0 4 16:16:4:0 是 6000.0000 800.0000 5382.4360 + 10 0 0 5 20:20:5:0 是 6000.0000 800.0000 5700.0000 + 11 0 0 5 20:20:5:0 是 6000.0000 800.0000 800.0000 + 12 0 0 6 24:24:6:0 是 5700.0000 800.0000 5700.0000 + 13 0 0 6 24:24:6:0 是 5700.0000 800.0000 800.0000 + 14 0 0 7 28:28:7:0 是 5700.0000 800.0000 5700.0000 + 15 0 0 7 28:28:7:0 是 5700.0000 800.0000 800.0000 + 16 0 0 8 32:32:8:0 是 4400.0000 800.0000 800.0000 + 17 0 0 9 33:33:8:0 是 4400.0000 800.0000 4368.9390 + 18 0 0 10 34:34:8:0 是 4400.0000 800.0000 4400.0859 + 19 0 0 11 35:35:8:0 是 4400.0000 800.0000 4337.2222 + 20 0 0 12 36:36:9:0 是 4400.0000 800.0000 800.0000 + 21 0 0 13 37:37:9:0 是 4400.0000 800.0000 800.0000 + 22 0 0 14 38:38:9:0 是 4400.0000 800.0000 4400.6821 + 23 0 0 15 39:39:9:0 是 4400.0000 800.0000 800.0000 + 24 0 0 16 40:40:10:0 是 4400.0000 800.0000 800.0000 + 25 0 0 17 41:41:10:0 是 4400.0000 800.0000 4400.0400 + 26 0 0 18 42:42:10:0 是 4400.0000 800.0000 4359.9048 + 27 0 0 19 43:43:10:0 是 4400.0000 800.0000 800.0000 + 28 0 0 20 44:44:11:0 是 4400.0000 800.0000 800.0000 + 29 0 0 21 45:45:11:0 是 4400.0000 800.0000 4400.9121 + 30 0 0 22 46:46:11:0 是 4400.0000 800.0000 4399.6802 + 31 0 0 23 47:47:11:0 是 4400.0000 800.0000 800.0000 +``` + +其中第一列的 CPU 就是你要填入MCSM的核心编号,第四列是物理核心编号,所以需要注意不要把一个物理核心的两个逻辑核心分配给不同的服务端,这会导致资源竞争 + +同时也需要避免将 CORE0 对应的CPU `0,1` 分配给服务端,这两个逻辑核心通常运行着宿主机系统(Ubuntu/Debian)、Docker 守护进程以及网络中断 + +在开启我的世界服务器时,最好将 MAXMHZ 最高频率高的核心分配给服务端,比如这里我应填写`8,9,10,11`来将能跑到 6Ghz 的的核心分配给服务端,对我的世界来服务端来说,一般分配2-3个物理核心就足够了,分配多了他也无法利用 + +当然如果你想坑人卖别人垃圾服务器也可以把小核分给他(bushi + +之后重启一下服务器就可以开始wan了:) +![粘贴的图像|557x500](/img/2026/mcsm-container/fd931bfc04cca2ed48339260073598efb85c8c7a.jpeg) + +## 4. 服务端性能调优 + +### Java启动参数 + +对于高版本forge服务端,可以添加一些参数来优化性能,比如添加这些参数 + +```shell +-Xmx12G +-XX:ParallelGCThreads=6 +-XX:ConcGCThreads=2 +-XX:G1ConcRefinementThreads=6 +``` + +其中 `-Xmx12G` 对应你分配给服务端的内存,`-XX:ParallelGCThreads`和`-XX:G1ConcRefinementThreads`应该对应你分配给服务端的逻辑核心数目 + +### 优化Mod + +* **ModernFix**:优化 高版本 的内存分配,减少模组服的内存碎片。 +* **FerriteCore**:大幅降低由 Mod 引起的数据结构内存占用。 diff --git a/source/img/2026/mcsm-container/486092ff0cd62424cc24725080bae9297db8309f.png b/source/img/2026/mcsm-container/486092ff0cd62424cc24725080bae9297db8309f.png new file mode 100644 index 0000000..c55aae4 Binary files /dev/null and b/source/img/2026/mcsm-container/486092ff0cd62424cc24725080bae9297db8309f.png differ diff --git a/source/img/2026/mcsm-container/8a53e835175a4935aeb7e4ae09ed19b8e3dc57e0.jpeg b/source/img/2026/mcsm-container/8a53e835175a4935aeb7e4ae09ed19b8e3dc57e0.jpeg new file mode 100644 index 0000000..966329c Binary files /dev/null and b/source/img/2026/mcsm-container/8a53e835175a4935aeb7e4ae09ed19b8e3dc57e0.jpeg differ diff --git a/source/img/2026/mcsm-container/9879649502c23cf526b8bf0a42dfb983416b17c5.jpeg b/source/img/2026/mcsm-container/9879649502c23cf526b8bf0a42dfb983416b17c5.jpeg new file mode 100644 index 0000000..d41e60e Binary files /dev/null and b/source/img/2026/mcsm-container/9879649502c23cf526b8bf0a42dfb983416b17c5.jpeg differ diff --git a/source/img/2026/mcsm-container/e36624164fb8ad217959f7c717047d447d1b0d0c.jpeg b/source/img/2026/mcsm-container/e36624164fb8ad217959f7c717047d447d1b0d0c.jpeg new file mode 100644 index 0000000..a27ec60 Binary files /dev/null and b/source/img/2026/mcsm-container/e36624164fb8ad217959f7c717047d447d1b0d0c.jpeg differ diff --git a/source/img/2026/mcsm-container/fd931bfc04cca2ed48339260073598efb85c8c7a.jpeg b/source/img/2026/mcsm-container/fd931bfc04cca2ed48339260073598efb85c8c7a.jpeg new file mode 100644 index 0000000..cb115dd Binary files /dev/null and b/source/img/2026/mcsm-container/fd931bfc04cca2ed48339260073598efb85c8c7a.jpeg differ