精华内容
下载资源
问答
  • Linux下启动tomcat,巨慢始终起不来

    千次阅读 2018-04-04 19:43:57
    每回启动都很慢,记得最长一次了半个小时,一直苦于找原因,找个运维帮忙,说是报错导致启动过慢,我修改完bug,但是还是启动很慢,我就在Linux环境下用 ./catalina.sh run 方式启动项目分析一下哪里问题...

     最近自己弄个项目放在阿里云的服务器上,每回启动都很慢,记得最长一次起了半个小时,一直苦于找不到原因,找个运维帮忙,说是报错导致启动过慢,我修改完bug,但是还是启动很慢,我就在Linux环境下用 ./catalina.sh run 方式来启动项目分析一下哪里的问题。请看我的项目启动的。

     2018-01-06 11:43:16,201 [localhost-startStop-1] INFO  [org.springframework.web.context.ContextLoader] - Root WebApplicationContext: initialization completed in 5296 ms  这段话的时候就一直等待。在网上查查资料,Tomcat所在的JVM进程已经被启动了所以可以排除是JVM退出引起的问题。那么问题真的就是JVM因为某种原因被阻塞了。

    解决方案:安装rngd服务(熵服务)

    执行命令: yum -y install rng-tools

    echo 'EXTRAOPTIONS="--rng-device /dev/urandom"' >/etc/sysconfig/rngd

    service rngd start

    chkconfig rngd on

    chkconfig --list rngd

    展开全文
  • 1.linux上mysql数据备份的服务起不来,报错信息是缺失 sock 文件。但数据备份脚本以前一直正常,不太可能出现被删文件,导致的服务脚本不能执行,查询一堆解决方案后,排除mysql故障(划重点!表面是A出错,但实际...

    问题描述

    1.linux上mysql数据备份的服务起不来,报错信息是缺失 sock 文件。但数据备份脚本以前一直正常,不太可能出现被删文件,导致的服务脚本不能执行,查询一堆解决方案后,排除mysql故障(划重点!表面是A出错,但实际可能是B的原因,如果思路不开阔,一直在mysql上死磕,就难解决了)

    2.后续从服务器下手,df -h 就发现磁盘使用在98%,非常不正常的指标。于是google解决方案。重点说一下,因为有挂载的磁盘(5T),所以在计算文件空间占用时需要点技巧。查找大文件————删掉————确认删掉干净————over

    解决步骤

    1.使用这个语句,过滤掉挂载的包,找出哪个文件夹最大
    du -sh /* --exclude=“proc” --exclude=“data”

    2.找到疑似文件夹后,找到这个文件夹内,每个文件分别多大
    du -sh *

    可以得到 / 目录下所有文件和目录的大小的排序结果
    du -sh /* | sort -nr
    du -sh /var/* | sort -nr
    du -sh /var/log/* | sort -nr
    du -sh /var/log/httpd/* | sort -nr

    3.删掉大文件
    rm -rf a.py
    cp 复制、 mv 移动/重命名、 rm 删除

    4.确认文件删除干净了
    lsof | grep deleted
    kill -9 **** (序号为上句代码中 第二列的输出)

    5.check 磁盘使用情况
    df -sh *

    展开全文
  • Linux下启动tomcat,巨慢始终起不来 最近自己弄个项目放在阿里云服务器上,每回启动都很慢,记得最长一次起了半个小时,一直苦于找不到原因,找个运维帮忙,说是报错导致启动过慢,我修改完bug,但是还是启动很...

    在Linux下启动tomcat,巨慢始终起不来

      最近自己弄个项目放在阿里云的服务器上,每回启动都很慢,记得最长一次起了半个小时,一直苦于找不到原因,找个运维帮忙,说是报错导致启动过慢,我修改完bug,但是还是启动很慢,我就在Linux环境下用 ./catalina.sh run 方式来启动项目分析一下哪里的问题。请看我的项目启动的。

    技术分享图片

     2018-01-06 11:43:16,201 [localhost-startStop-1] INFO  [org.springframework.web.context.ContextLoader] - Root WebApplicationContext: initialization completed in 5296 ms  这段话的时候就一直等待。在网上查查资料,Tomcat所在的JVM进程已经被启动了所以可以排除是JVM退出引起的问题。那么问题真的就是JVM因为某种原因被阻塞了。

    解决方案:安装rngd服务(熵服务)

    执行命令: yum -y install rng-tools

    echo ‘EXTRAOPTIONS="--rng-device /dev/urandom"‘ >/etc/sysconfig/rngd

    service rngd start

    chkconfig rngd on

    chkconfig --list rngd

    参考:https://www.cnblogs.com/taiyanhong/p/8000530.html

    在Linux下启动tomcat,巨慢始终起不来

    标签:分享图片   webapp   ace   tps   运维   tomcat   let   post   app   

    原文地址:https://www.cnblogs.com/liduanwen/p/8213818.html

    展开全文
  • 对于进程说,相同地址(同一个虚拟地址)在不同进程中,反复使用而冲突。原因是他们虽虚拟址一样,但,页目录、页表、物理页面各相同。相同虚拟址,映射到不同物理页面内存单元,最终访问不同物理页面...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程数据丢失,使系统处于稳定状态,甚至在有系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有...
  • java web服务器cpu占用过高处理

    千次阅读 2015-09-09 14:54:14
    平时项目中有时遇到cpu过高的情况,在此基于自己有限的经验写个分享,此处的服务器都是基于...CPU us 高的原因主要是执行线程需要任何挂动作,且一直执行,导致CPU 没有机会去调度执行其他的线程。 CPU sy高的解

    平时项目中有时遇到cpu过高的情况,在此基于自己有限的经验写个分享,此处的服务器都是基于linux平台。

    cpu的占有线程类型总的来说分为两种:
    us :用户空间占用CPU百分比
    sy :内核空间占用CPU百分比

    一般来讲CPU us高的解决方法:
    CPU us 高的原因主要是执行线程不需要任何挂起动作,且一直执行,导致CPU 没有机会去调度执行其他的线程。
    CPU sy高的解决方法:
    CPU sy 高的原因主要是线程的运行状态要经常切换,对于这种情况,常见的一种优化方法是减少线程数。

     

    我平时具体的步骤如下:

    1.得到线程最高的几个id

    ps  -eLo pid,lwp,pcpu | grep  15285|sort -nk 3   

    2.导出JAVA线程栈信息

    命令:kill -3 [PID] 或者 jstack

    3.从栈信息中找到线程数多的几个

    命令:sort  文件名 | uniq -c | sort -nk 1

    4.分别分析线程数最多的前十个线程和线程占用cpu最高的前10个线程

    这步是最关键的,找出这些异常点,比如某个业务功能点占用较高的cpu或者某种类型的线程数量比较多,这个和业务以及具体程序紧密关联的,在此就不多说了。

    5.分析占用cpu最高的前10个线程,结果示例如下:

    0x1a5:gc线程
    "Concurrent Mark-Sweep GC Thread#0" prio=1 tid=0x0000002b29df1400 nid=0x1a5 runnable 
    0x35f:memcache线程
    "memcache5-CacheThread" prio=1 tid=0x0000002b3d277de0 nid=0x35f runnable [0x0000000042755000..0x0000000042755c30]
    0x35e:memcache线程
    "memcache1-CacheThread" prio=1 tid=0x0000002b371212f0 nid=0x35e runnable [0x0000000042654000..0x0000000042654cb0]
    0x14e9:RMI线程
    "RMI TCP Connection(102)-10.23.241.59" daemon prio=1 tid=0x0000002b37e72790 nid=0x14e9 runnable [0x000000005103c000..0x000000005103deb0]
    0x1be:memcache线程
    "memcache5-CacheThread" prio=1 tid=0x0000002b3dba4790 nid=0x1be runnable [0x0000000041a48000..0x0000000041a48eb0]
    0x1bd:memcache线程
    "memcache1-CacheThread" prio=1 tid=0x0000002b3fb70340 nid=0x1bd runnable [0x0000000041947000..0x0000000041947b30]
    0x1af:jdk编译线程
    "CompilerThread1" daemon prio=1 tid=0x0000002b30e11620 nid=0x1af waiting on condition [0x0000000000000000..0x000000004123f7c0]
    0x1ae:jdk编译线程
    "CompilerThread0" daemon prio=1 tid=0x0000002b30e10280 nid=0x1ae waiting on condition [0x0000000000000000..0x000000004113e440]
    0x1684:http请求线程,通过该线程栈可以看到此处调用的是hibernate查询
    "http-8080-Processor123" daemon prio=1 tid=0x0000002b37dfd9d0 nid=0x1684 runnable [0x000000005afd7000..0x000000005afdcd30]

     6.系统优化

    如果找出了哪些功能点占用cpu高,接下来就需要优化了,可以从业务和技术手段两方面来进行,平时工作中比较常用的技术手段:

    弹性时间:对高使用率的请求,分散到不同的时间,比如采用队列或异步,减少同一时间处理的请求。

    批处理或定时任务:把请求组合成批,这样可以使得时间真真的都有效的用在了处理上,而不是网络传输等准备工作上。

    缓存:将结果缓存起来,空间换时间。

     

    7.如果是gc线程比较费时,则需要进一步的定位:

    首先查看一下gc策略是否合理,然后用命令jmap -F -dump:live,file=jmap.hprof [PID] 导出内存dump文件,我一般每隔5s导一次,一共导出3次。用Eclipse Memory Analyzer分析导出来的文件,分析是哪个类占用内存比较多,分析出可能存在内存泄露的地方。

    注意jvm分配内存时一个大对象的分配比多个小对象的分配效率要低,如果对象比较大,进行拆分能提高效率,具体原因如下:

    Java对象所占用的内存主要从堆上进行分配,堆是所有线程共享的,因此在堆上分配内存时需要进行加锁,这导致了创建对象开销比较大。当堆上空间不足时,会触发GC,如果GC后空间仍然不足,则抛出OutOfMemory错误信息。Sun JDK为了提升内存分配的效率,会为每个新创建的线程在新生代的Eden Space上分配一块独立的空间,这块空间称为TLAB(Thread Local Allocation Buffer),其大小由JVM根据运行情况计算而得,可通过-XX:TLABWasteTargetPercent来设置TLAB可占用的Eden Space的百分比,默认值为1%。JVM将根据这个比率、线程数量及线程是否频繁分配对象来给每个线程分配合适大小的TLAB空间 。在TLAB上分配内存时不需要加锁,因此JVM在给线程中的对象分配内存时会尽量在TLAB上分配,如果对象过大或TLAB空间已用完,则仍然在堆上进行分配,因此在编写Java程序时,通常多个小的对象比大的对象分配起来更加高效。

    展开全文
  • 导致某次重启tomcat的时候起不来。 产生原因:tomcat 异常关闭, 或强行终止导致(如断电等....) 大致产生问题的原因是,LINUX 关闭tomcat时,会记录一个 Pid 文件. 此时异常关闭后, pid文件仍然存在,而我们要关闭的...
  • 重启并发管理器

    2017-10-25 19:51:00
    并发管理器经常在重启应用时候起不来原因:系统在停应用时候有请求再跑。 因此,一般在停应用之前,会把计划请求取消掉,或者在停应用之后,将并发管理器占用进程杀死。 EBS服务器大多是基于Linux搭建,...
  • 第3章 Oracle DBAUNIX/Linux基础 31 3.1 UNIX和Linux操作系统概述 31 3.1.1 UNIX 31 3.1.2 Linux 32 3.1.3 中档系统 32 3.2 理解UNIX shell 33 3.3 访问UNIX系统 33 3.4 基本UNIX命令概览 35 ...
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    文将对 Linux™ 程序员可以使用内存管理技术进行概述,虽然关注重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池半...
  • 至于这样做的原因,在本书第 2章有比较详细的说明。当然,开发环境毕竟是第二位的,书中讲述的内容以及涉及的代码跟第一版都是一致的。本书的下篇全部都是新鲜内容,主要是增加了进程间通信、文件系统和内存管理。跟...
  • 至于这样做的原因,在本书第 2章有比较详细的说明。当然,开发环境毕竟是第二位的,书中讲述的内容以及涉及的代码跟第一版都是一致的。本书的下篇全部都是新鲜内容,主要是增加了进程间通信、文件系统和内存管理。跟...
  • 随之是Linux后台服务与驱动程序通信时数据混乱(第11章),因为补丁安装失败而即将被断网系统(第12章),SDK安装程序挂死(第13章),句柄异常导致的随机崩溃(第14章)。而后是两个系统级挂死,一个是挂在...
  • 全面的知识体系,无法从整体上把握Java的原因。在这里我们先简单了解一下Java的版本 具体的Java体系知识结构,将在后面详细讲述。 Java分成三种版本,分别是Java标准版(JSE)、Java微缩版JME)和Java企业版(JE), 每一和...
  • 原因分析:Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-strip 找到, 导致编译报错。ndk升级导致的,自己现在是17版本。 第一种解决办法:...
  • 请使用 IntelliJ IDEA, 尽量不要用 Eclipse/MyEclipse,使用前者项目起不来我可以帮忙解决,后者直接忽视(理论上可以起) 2.确保你安装了 Maven 从官网下载 Maven,并配置阿里云镜像,IDEA 或 Eclipse 里需要设置 ...
  • FAQ(持续更新)

    2021-01-08 12:27:51
    通过seriesget_context()和set_context()方法读取和修改。而parallel在它callback里,也可以通过series_at()获到它所包含各个series(这些seriescallback已经被调用,但会在parallel ...
  • ARP攻击是导致网络无法正常访问重要原因,噢易首家内置了防ARP攻击功能,确保网络畅通无阻。 WEB服务系统 · Web远程查询 系统拥有WEB查询功能,可以方便管理员、教师和学生远程查询各自需要查询相关信息。...
  • 测试培训教材

    2014-04-01 12:10:48
    项目管理员可以使用QCExcel插件工具执行需求批量导入,进行导入之前请先确认已经访问过MQC主页,并安装了QCMSExcelAddin.exe插件。 插件下载地址: http://updates.merc-int.com/qual ... /msexcel/index.html...

空空如也

空空如也

1 2
收藏数 21
精华内容 8
关键字:

linux导致服务起不来的原因

linux 订阅