精华内容
下载资源
问答
  • Jenkins+Tomcat服务器配置过程中,修改了tomcat配置文件;然后再访问服务器的tomcat页面发现根本... 总结 以上就是快速解决Tomcat重新配置后启动慢的问题的详细内容,更多关于tomcat启动慢请关注脚本之家其它相关文章!

    Jenkins+Tomcat服务器配置过程中,修改了tomcat配置文件;然后再访问服务器的tomcat页面发现根本加载不出来

    企图重启tomcat

    /opt/tomcat/bin/shutdown.sh

    出现如下报错

    [root@izbp1fmfc2pdjiw9u143xfz conf]# /opt/tomcat/bin/shutdown.sh Using CATALINA_BASE: /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar 二月 20, 2020 1:37:22 下午 org.apache.catalina.startup.Catalina stopServer 严重: Could not contact [localhost:8005]. Tomcat may not be running. 二月 20, 2020 1:37:22 下午 org.apache.catalina.startup.Catalina stopServer 严重: Catalina.stop: java.net.ConnectException: 拒绝连接 (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:607) at java.net.Socket.connect(Socket.java:556) at java.net.Socket.(Socket.java:452) at java.net.Socket.(Socket.java:229) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:504) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:389) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:479)

    经查证,出现这种报错的原因是Tomcat尚未启动完成;

    接下来尝试了强制关闭tomcat

    ps -ef | grep tomcat 查看tomcat进程号

    kill -9 + 进程号 杀死进程

    重新启动tomcat

    /opt/tomcat/bin/startup.sh

    tomcat页面依旧无法加载

    打印tomcat运行日志

    [root@izbp1fmfc2pdjiw9u143xfz conf]# cd /opt/tomcat [root@izbp1fmfc2pdjiw9u143xfz tomcat]# ls bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work [root@izbp1fmfc2pdjiw9u143xfz tomcat]# cd logs [root@izbp1fmfc2pdjiw9u143xfz logs]# ls catalina.2020-02-20.log host-manager.2020-02-20.log localhost_access_log.2020-02-20.txt catalina.out localhost.2020-02-20.log manager.2020-02-20.log [root@izbp1fmfc2pdjiw9u143xfz logs]# tail -f catalina.out 20-Feb-2020 13:48:35.239 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/tomcat 20-Feb-2020 13:48:35.239 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/tomcat 20-Feb-2020 13:48:35.239 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp 20-Feb-2020 13:48:35.239 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib] 20-Feb-2020 13:48:35.348 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"] 20-Feb-2020 13:48:35.391 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 20-Feb-2020 13:48:35.403 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 895 ms 20-Feb-2020 13:48:35.487 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 20-Feb-2020 13:48:35.487 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.51 20-Feb-2020 13:48:35.524 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat/webapps/docs]

    发现运行日志卡在最后一行:localhost-startStop-1,无法向下继续进行

    解决方案:

    将$ JAVA_HOME / jre / lib / security / java.security文件中的securerandom.source参数修改为文件:/ dev /./ urandom

    [root@izbp1fmfc2pdjiw9u143xfz logs]# cd $JAVA_HOME/jre/lib/security

    [root@izbp1fmfc2pdjiw9u143xfz security]# ls

    blacklisted.certs cacerts java.policy java.security nss.cfg policy

    [root@izbp1fmfc2pdjiw9u143xfz security]# vi java.security

    顺带一提,在vi中快速搜索的方法:

    命令模式下输入“/字符串”,例如“/Section 3”。如果查找下一个,按“n”即可。

    总结

    以上就是快速解决Tomcat重新配置后启动慢的问题的详细内容,更多关于tomcat启动慢请关注脚本之家其它相关文章!

    展开全文
  • 二、SpringBoot启动jar首次启动慢的解决方案 一、服务器使jar包始终运行 把java程序打成jar包后,在服务器终端执行,如果使用java -jar xxxx.jar执行, 当我们退出终端的时候,xxxx.jar这个程序也会停止。 为了...

    目录

     

    一、服务器使jar包始终运行

    二、SpringBoot启动jar首次启动慢的解决方案


    一、服务器使jar包始终运行

    把java程序打成jar包后,在服务器终端执行,如果使用java -jar xxxx.jar执行,

    当我们退出终端的时候,xxxx.jar这个程序也会停止。

    为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行

     原因是:

    直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。这种情况适合短时间测试用。

    nohup的意思是不挂断,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename2>&1"来更改缺省的重定向文件名。这种情况适合在生产环境长时间运行。

    nohup启动可以采用如下三种方式:

    # 把标准输出重定向到空设备,即只输出错误信息到日志文件
    nohup java -jar app.jar >/dev/null 2>log & 
    # 把标准输出和标准错误全重定向到空设备,即不输出日志
    nohup java -jar app.jar >/dev/null 2>&1 &
    # 当前目录下会生成一个nohup.out文件,控制台输入的东西会会被转移到这个文件中
    nohup java -jar bbb.jar & 

    以符号“>”进行划分,符号左边是输出什么,符号右边是输出到哪

    • 1>​​​​   符号左边是1,标准输出。

    • 2>   符号左边是2,错误输出。

    • 2> &1  错误输出将会和标准输出输出到同一个地方。

    • > &1   重定向到标准输出的地址,啥意思,就是输出到已指定的标准输出的地址。

    • > &2   重定向到错误输出的地址,就是输出到已指定的错误输出的地址。

    •  >/dev/null   这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

     例如:***.jar >nohup.log 2>&1命令,可以拆解成 > nohup.log 和 2> &1两个输出,表示错误输出和标准输出都在nohup.log

    (1)nohup java -jar ***.jar >/data/log.log 2>/data/err.log &  

    解释:标准日志输出到/data/log.log文件,错误日志输出到/data/err.log文件。

    (2)nohup java -jar ***.jar >/data/log.log 2>&1 &  

    解释:标准日志输出到/data/log.log文件,错误日志重定向也输出到/data/log.log文件。

    (3)nohup java -jar ***.jar >/dev/null 2>/data/err.log &  

    解释:标准日志输出到/dev/null,也就是不输出标准日志,错误日志输出到/data/err.log文件。

     

    nohup java -jar bbb.jar &:

    当前目录下会生成一个nohup.out文件,控制台输入的东西会会被转移到这个文件中。最后通过exit退出终端窗口。

    二、SpringBoot启动jar首次启动慢的解决方案

    解决办法 编辑 /usr/java/jdk/jdk1.8.0_211/jre/lib/security/下的java.security 文件
    securerandom.source=file:/dev/random
    改为
    securerandom.source=file:/dev/./random
    这样就是一个非租塞

     

    展开全文
  • 1、uptime:查询linux系统负载11:16:16系统当前时间up 64 days, 19:23 从上次启动开始系统运行的时间3 users 连接数量,同一用户多个连接的时候算多个load average: 0.22, 0.25, 0.23 1分钟、5分钟、15分钟系统的...

    1、uptime:查询linux系统负载

    8d5a43cac6f2e51ed4796b126c8eb223.png

    11:16:16 系统当前时间

    up 64 days, 19:23 从上次启动开始系统运行的时间

    3 users 连接数量,同一用户多个连接的时候算多个

    load average: 0.22, 0.25, 0.23  1分钟、5分钟、15分钟系统的平均负载值 三值相加/3*100% > 60% 系统负担压力大

    2、top:实时显示系统中各个进程的资源占用情况

    2d2b1e19dc41ed5686cb188e65e5b5fd.png

    第2、3行为进程和CPU的信息

    第4、5行为内存信息

    看CPU、内存

    load average(1分钟、5分钟、15分钟系统的平均负载值 三值相加/3*100% > 60% 系统负担压力大)

    2、查看CPU:vmstat -n 2 3

    procs

    r:运行和等待CPU时间片的进程数,整个系统的运行队列不能超过总核数的2倍,否则代表压力很大

    b:等待资源的进程数,比如等待磁盘IO,网络IO

    CPU

    us:用户进程消耗CPU时间百分比

    sy:内核进程消耗CPU时间百分比 us+sy>80% 存在CPU不足

    23d899d8de2ffffa4a90f1ef15ec7dea.png

    查看所有CPU核信息:mpstat -P ALL 2  【idle代表CPU空闲值,越高越好】

    每个进程使用CPU的用量分解信息:pidstat -p 进程编号 -u 采用间隔秒数

    3、查看内存:free

    free/total>70% 内存充足

    free/total<20% 内存不足

    c2655bcfbaacb4983f27708dddb3d6ba.png

    查看额外:pidstat -p 进程编号 -r 采用间隔秒数

    4、查看磁盘剩余空间数:df -h

    91e8d881dc5099273887c9f3cdf2aa87.png

    5、磁盘IO:iostat -xdk 2 3

    util 一秒中有百分几的时间用于IO操作 接近100%磁盘带宽跑满,需要优化程序或增加磁盘

    e1b0c7bbe0b990753f1f25904828c03c.png

    查看额外:pidstat -p 进程编号 -d 采用间隔秒数

    6、网络IO:ifstat [默认本地没有,需下载]

    wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz

    tar -zxvf ifstat-1.1.tar.gz

    cd ifstat-1.1

    ./configure #默认会安装到/usr/local/bin/目录中

    make

    make install

    说明:安装sysstat命令:yum install sysstat

    pidstat参数说明

    -u:默认的参数,显示各个进程的cpu使用统计

    -r:显示各个进程的内存使用统计

    -d:显示各个进程的磁盘IO使用情况

    -p:指定进程号

    展开全文
  • 场景:我们在部署了TOMCAT应用,刚刚开始启动的一个段时间内。访问系统的速度比较快。但是过了一段时间,应用系统就慢慢的变起来了。服务的访问加载时间慢慢变长。 问题解决思路: 1,查看部署应用系统的...

    场景:我们在部署了TOMCAT应用,刚刚开始启动的一个段时间内。访问系统的速度比较快。但是过了一段时间,应用系统就慢慢的变慢起来了。服务的访问加载时间慢慢变长。

     

         问题解决思路:

            1,查看部署应用系统的系统资源使用情况,CPU,内存,IO这几个方面去看。找到对就的进程。

            2,使用jstack,jmap等命令查看是JVM是在在什么类型的内存空间中做GC(内存回收),和查看GC日志查看是那段代码在占用内存。

             首先,调节内存的参数设置,如果还是一样的问题,就要定位到相应的代码。

            3,定位代码,修改代码(一般是代码的逻辑问题,或者代码获取的数据量过大。)

    转载于:https://www.cnblogs.com/firstdream/p/10560730.html

    展开全文
  • 异常描述: An internal error occurred ...导入一个Maven项目,嫌弃删除了eclipse的进程,后面就跑不起来 解决方案:  1.找到workspace文件夹下的/.metadata文件夹,将其删除掉,然后在讲项目重新导入...
  • 我们有一个重要的旧系统,最近夜维出现了一些问题,夜间执行5小时未完成,为了不影响业务,只能早上高峰期之前,DBA手工kill夜维进程。这一个夜维程序采用了PLSQL写的存储过程,通过数据库job定时启动执行。存储过程...
  • 导入一个Maven项目,嫌弃删除了eclipse的进程,后面启动eclipse报一下错误! An internal error occurred during: "reload maven project". java.lang.NullPointerExceptio 关于这eclipse编译工具错误,有以下...
  • 开始是导入maven项目,然后嫌弃很,就结束eclipse.exe进程,之后就报错 An internal error occurred during: "reload maven project". java.lang.NullPointerExceptio 解决办法: 在.metadata下搜索workbench....
  • 这种错误,大概是因为,在使用eclipse中使用maven下载jar,由于太自己没有耐心,就手动停止,结果eclipse卡死没有响应,最后启动任务管理器结束eclipse进程。之后再次启动就出现这种结果。 出现这种情况,网上...
  • 这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程启动而存在,而有的区域则依赖线程的启动和结束而创建和销毁。 Java虚拟机栈内存堆内存基础类型,对象引用(堆内存地址)由new创建的对象和数组...
  • Java多线程

    2021-03-31 10:33:06
    Java语言内置了多线程支持:一个Java程序实际上是一个JVM进程,JVM进程用一个主线程来执行main()方法,在main()方法内部,我们又可以启动多个线程。此外,JVM还有负责垃圾回收的其他工作线程等。 进程和线程 进程...
  • 进程切换要保存、还原上下文,比较 线程切换较快 线程调度 有以下几种方法 分时调度 所有线程轮流获得CPU使用权,平均分配每个线程占用CPU的时间(时间片) 抢占式调度 优先级高的线程使用CPU,如果优先级...
  • Java线程状态

    2018-12-25 08:31:35
    进程:CPU太快了,而I/O速度太,资源利用率太低,因而出现了并行处理(让不需等待某种系统资源的程序先执行),也即多进程—提升资源利用率,多任务可并行实现 线程:为实现高资源利用率而对进程并行切换造成的系统...
  • Java Thread Dump

    2018-02-27 23:44:29
    Thread dump是对于程序...假定我们现在怀疑某个java进程出现了问题,比如没有响应,首先可以尝试拿到这个java应用对应的process Id (ps or jps)。然后可以看一下这个应用启动了那一些线程,这个步骤可以top命令: ...
  • Java 多线程编程

    2017-07-08 23:12:28
    为了增加操作系统运行的效率,设计出了进程,但是进程启动和销毁还是很的,所以后来人们开始尝试在进程上做进一步优化,产生了线程的概念,即 :线程是在进程的基础上扩充的。线程的启动和销毁将比进程更快,一...
  • 零.引子线程是程序运行中一个非常重要的概念。...我们平时在电脑中开启一些程序时,比如开启eclipse,idea等开发工具时,会发现程序启动,这是因为进程运行所依赖的资源较多,故开启一个进程耗费的资源和...
  • Java 多线程

    2020-09-22 18:57:31
    进程是一种重量级的资源,系统会分配内存和CPU资源,启动和停止,内存相互独立 线程:车间内一个工人为一个线程; 多线程:一个进程包含多个线程;多个线程都可以共享一个进程的内存空间; 1.1、什么是多...
  • 一.背景了解JVM,可以帮助开发人员解决OOM、GC、性能优化等...jpsjcmdps -ef| grep javatop -s60| grep javajps -v :查看启动参数2.jstack pid当前时刻的线程快照,分析线程当前状态和停顿原因。3.jmapjmap -heap...
  • 一.背景了解JVM,可以帮助开发人员解决OOM、GC、性能优化等...jpsjcmdps -ef| grep javatop -s60| grep javajps -v :查看启动参数2.jstack pid当前时刻的线程快照,分析线程当前状态和停顿原因。3.jmapjmap -heap...
  • java多线程学习笔记

    2018-03-12 20:55:29
    线程启动的所占用的资源更少,进程比线程java是一个多线程的语言,其指向的性能更快。 多线程编程 如果要实现多线程的主类,有两类途径: 1.继承一个Thread类; 2.【推荐】实现Runable、Callable接口。 ...
  • Java多线程实现

    2018-09-11 14:14:05
    一、线程与进程 从操作系统来讲,可以被民用的系统最早是DOS,但是传统的DOS系统有一个特征:电脑...但是进程启动和销毁还是很的。所以后来人们开始尝试在进程上做进一步的优化,那么就产生了线程的概念,即:...
  • 深入理解Java线程池

    2018-12-26 15:36:54
    零.引子  线程是程序运行中一个非常重要的概念。通常情况下,程序从... 我们平时在电脑中开启一些程序时,比如开启eclipse,idea等开发工具时,会发现程序启动,这是因为进程运行所依赖的资源较多,故开启...

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

java进程启动慢

java 订阅