1723624171
本帖最后由 1723624171 于 2018-12-4 17:49 编辑

如题,本人这里有台5h8g的虚拟机,进入vps后打开任务管理器内存显示0.7/8GB,我该给服务器分配多少内存才不会开服务器开着开着内存溢出,求助,服务器系统win server 2012给系统留多少空间

请会vps的人给新人完整解答,不能有任何掩饰

佐木君Carl
建议直接设置满就OK了!
  1. java -Xms8000M -Xmx8000M -jar 服务端.jar
复制代码

772499649
本帖最后由 772499649 于 2018-12-4 18:16 编辑

越大性能越好
这样不会因为回收内存占用CPU

你开8G的服务器 最好设置6~7g内存
需要预留1~2G给win系统 在win系统的情况下我建议是2G 也就是分配6G
Linux系统可以分配7G 但是我建议还是6G  比较好拓展其他应用 如SQL数据库

772499649
本帖最后由 772499649 于 2018-12-4 18:03 编辑

你开8G的服务器 最好设置6~7g内存

Hanssc
这样设置jvm参数,是最佳的。其次内存并不是分配了就全占。
https://aikar.co/2018/07/02/tuni ... lags-for-minecraft/

1723624171
772499649 发表于 2018-12-4 18:00
越大性能越好
这样不会因为回收内存占用CPU

有个问题,系统已经占用0.7GB,还有再问下服务器开了一天以上会出现内存7.9/8GB,这样咋办,给java分配的5GB

1723624171
Hanssc 发表于 2018-12-4 18:05
这样设置jvm参数,是最佳的。其次内存并不是分配了就全占。
https://aikar.co/2018/07/02/tuni ... lags-fo ...

jvm参数有啥用途吗

1723624171
佐木君Carl 发表于 2018-12-4 18:00
建议直接设置满就OK了!

问的不是这个,问的分配内存系统预留多少

772499649
1723624171 发表于 2018-12-4 18:31
有个问题,系统已经占用0.7GB,还有再问下服务器开了一天以上会出现内存7.9/8GB,这样咋办,给java分配的 ...

那你要看是什么软件占用的 然后来合理分配内存 如果你还要拓展其他应用还要开服务器 我觉得你可以用16G的机器

1723624171
772499649 发表于 2018-12-4 18:33
那你要看是什么软件占用的 然后来合理分配内存 如果你还要拓展其他应用还要开服务器 我觉得你可以用16G的 ...

是这个意思,vps开机后,打开任务管理器,内存那个栏目显示0.7/8GB

佐木君Carl
1723624171 发表于 2018-12-4 18:32
问的不是这个,问的分配内存系统预留多少

按我这样分配系统还是会省几百MB的,已经足够系统了!因为计算机是:1024MB=1G   我们用了8000MB 就还剩1024*8-8000=192  所以系统还剩192MB可以使用,这已足够系统使用,你也可以自行调整!7500MB都行

1723624171
佐木君Carl 发表于 2018-12-4 18:38
按我这样分配系统还是会省几百MB的,已经足够系统了!因为计算机是:1024MB=1G   我们用了8000MB 就还剩1 ...

好像开放bat写不成7500MB吧

佐木君Carl
1723624171 发表于 2018-12-4 18:39
好像开放bat写不成7500MB吧

可以写的,我给你建议:
  1. @ECHO OFF
  2. title MineCarl[生存]
  3. SET BINDIR=%~dp0
  4. :_MENU
  5. CLS
  6. set tm1=%time:~0,2%
  7. set tm2=%time:~3,2%
  8. set tm3=%time:~6,2%
  9. [url=home.php?mod=space&uid=219329]@Echo.[/url]
  10. echo  现在时间:%date% %tm1%点%TM2%分
  11. @echo. -----------------------------------------------------------------
  12. @echo.                         MineCarl服务器                                                                  
  13. @echo.                         服务器即将开启!
  14. @echo.
  15. @echo.           注意:关闭服务器前请在后台输入stop保存玩家数据
  16. @echo.                      否则可能会出现回档情况
  17. @echo.
  18. @echo.                        未经允许禁止转载!
  19. @echo.                        请勿用于商业用途!
  20. @echo. -----------------------------------------------------------------
  21. @echo.
  22. @echo. 请按下任意键来启动服务器…………
  23. @echo.
  24. pause
  25. cls
  26. @echo.     
  27. @echo. 现在时间:%date% %tm1%点%TM2%分
  28. @echo. -----------------------------------------------------------------
  29. @echo.
  30. @echo.
  31. @echo.                   服务器正在启动中,请稍等……
  32. @echo.
  33. @echo.
  34. @echo. -----------------------------------------------------------------
  35. java -Xms500M -Xmx500M -jar spigot-1.13.2.jar
  36. @echo.
  37. @echo. -----------------------------------------------------------------
  38. @echo.               Minecraft --- 玩家数据保存完毕 已关服
  39. @echo.
  40. @echo.                         按任意键关闭该窗口
  41. @echo. -----------------------------------------------------------------
  42. pause
  43. EXIT
复制代码

MC_tingfeng
内存溢出:当java无法获取足够内存时将导致java进程崩溃
结合你上述情况,虚拟机静态内存占用0.7G,且不论1024和1000的问题,空闲内存7.3G
假设你不开其他任何软件,给java分配8G内存,java调取内存需要一个过程,是逐步调取的,那么当java需要调取第7.4G内存是,因此部分内存已被系统自身占用,调用失败,崩溃
所以你采纳的那个最佳如果你真的那么用了,早晚GG

虚拟机8G内存,系统占用0.7G,如果再开个安全狗之类的,算他0.3G,玩家多了之后网络通讯处理再占用掉一部分,你能给java分配的最大内存建议不要超过6G,否则容易崩