趣文网 > 作文大全

SpringBoot2.x基础篇:Linux后台运行Jar以及Jvm参数调优

2020-12-02 04:00:01
相关推荐

我们将编写的应用程序打包为Jar可执行文件后,如果在Linux服务器环境下,可直接使用java -jar xxx.jar命令运行应用程序,不过当我们关闭命令窗口后启动中的应用程序也会停止,那我们需要通过什么方式才可以成为后台服务方式运行呢?

01

Nohup命令

Linux系统或者OS X都提供了一个解决应用程序后台运行的命令,那就是nohup,我们使用该命令可以直接将要执行的任务放置在后台运行,想要停止运行时需要通过结束pid的方式,使用方式如下所示:

我们通过以上的命令执行后可以看到控制台输出了本次运行程序的PID为 2349,我们可以使用kill命令杀死这个PID,从而达到了结束进程的效果。

注意事项:appending output to nohup.out这句话很有必要了解下,要知道我们之前通过java -jar xxx.jar直接运行应用程序时会有运行日志输出到控制台的,我们通过nohup方式运行时我们貌似并没有发现日志的输出,日志去了哪里呢?

02

运行日志

当你看到appending output to nohup.out这句话在控制台打印时,应该可以猜测到了,日志的内容已经输出到了名为nohup.out的文件内,该文件所处的位置就是我们运行nohup命令的同级目录(注意:不是jar文件的目录),我们可以通过tail -1000f nohup.out命令查看运行日志内容,如下所示:

通过nohup执行的命令所产生的日志都会输出到默认nohup.out文件内。

03

指定日志文件

在同一台服务器上、同一个目录下可能会存在多个需要运行的Jar文件,为了区分每个应用程序的日志输出,这时我们就需要指定日志输出的文件名,如下所示:

这时我们在nohup命令执行的同级目录下就可以看到创建了一个名为service-application-0.0.1.log的日志文件。

建议:日志文件的名称格式:Service ID + Service Version,相同ServiceID的服务可能存在部署不同版本的情况。

04

JVM Server模式

在JVM内有一个模式的概念,开发环境中一般使用的是client模式,不过生产服务器上一般都是使用server模式,我们要怎么选择呢?

推荐开发环境使用client模式,因为它启动快,可以提高一部分开发效率,节省每一次项目启动的时间,而生产环境则是推荐使用server模式,内部使用了代号为C2的重量级编译器,这样虽然导致应用程序启动速度有所提高,不过编译的比较彻底,服务在运行期间相对于client性能高一些。

设置使用server模式也比较简单,我们只需要执行java -server命令即可,如下所示:

05

初始内存(-Xms)

JVM在client模式下运行,默认Xms大小为1M,而在server模式下默认Xms大小为128M,可以根据实际情况进行修改分配,如下所示:

通过-Xms256M,修改初始化分配的内存为256M。

06

最大内存(-Xmx)

JVM在client模式下运行,默认Xmx大小为64M,而在server模式下默认Xmx大小为1024M,可以根据实际情况进行修改分配,如下所示:

通过-Xmx2048M,修改最大分配内存为2048M。

07

JVM调优脚本

JVM的调优尤为最重,服务器的配置有限,可使用的资源我们则是要珍惜,做出最大的贡献!!!

为了每次部署服务的便利性,我把启动服务的命令进行了封装,并命名为boot-jar.sh,内容如下所示:

使用touch boot-jar.sh创建启动脚本,创建完成后将上面内容复制到脚本内,并通过chmod u+x boot-jar.sh命令修改权限为可执行文件。

boot-jar.sh脚本使用如下:

developing-first-application git:(2.x) ./boot-jar.sh target/service-application-0.0.1-SNAPSHOT.jar

由于脚本内添加了tail命令,应用程序启动后会自动输出运行日志。

建议:boot-jar.sh应用程序启动脚本位置尽量放在与Jar同级目录下。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

以梦想为话题的作文600字 老师我想对你说作文500字 照片里的故事500字作文 三年级作文桃花300字 我的理想作文450字 以坚持为话题的作文 写环卫工人的作文 乡村风景作文 高中英语作文范文 有关梦想的作文 200字作文大全 初中作文400字 竹子的作文 云的作文 理解作文 中学生作文 一封信作文 观察作文 我敬佩的一个人作文300字 我的奇思妙想作文400字 新年趣事作文400字 我爱我家作文300字 自我介绍作文400字 珍藏的记忆作文 关于消防的作文 我的一家作文 梦想作文400字 英语作文介绍自己 漫画老师作文 菊花 作文