精华内容
下载资源
问答
  • 100000人同时访问系统,tomcat为什么挂掉?tomcat挂掉的表现是什么? 自己用tomcat发布一个j2ee的web工程,然后模拟1000000个人去登录,看看tomcat挂掉的表现是什么?然后去分析为什么挂掉

    100000人同时访问系统,tomcat为什么会挂掉?tomcat挂掉的表现是什么?

    自己用tomcat发布一个j2ee的web工程,然后模拟1000000个人去登录,看看tomcat挂掉的表现是什么?然后去分析为什么会挂掉?


    什么是宕机


    展开全文
  • docker容器为什么总会挂掉

    千次阅读 2020-06-02 22:46:33
    最近使用docker启动nginx时总会自动退出,看了一些文章后解决了问题,也明白了一些道理,将这些...docker容器会把pid=1的进程作为docker容器是否正在运行的依据,如果docker容器pid了,docker容器便会直接退出。 ...

    最近使用docker启动nginx时总会自动退出,看了一些文章后解决了问题,也明白了一些道理,将这些知识总结一下。

    只使用命令:docker run nginx就会自动退出,需要增加个死循环while true;do echo hello;sleep 5;done。
    或者加参数

    --restart=always
    

    引用
    自动退出的原因是:
    “docker容器会把pid=1的进程作为docker容器是否正在运行的依据,如果docker容器pid挂了,docker容器便会直接退出。”

    参考

    展开全文
  • 例:jar包:micro-service/micro-eureka-server-0.0.1-SNAPSHOT.jar启动命令:nohup java -jar micro-service/micro-eureka-server-0.0.1-SNAPSHOT.jar &启动之后用 ctrl+c 回到命令行就不会挂掉了,想要看看启动...

    我们的spring cloud微服务一般是打成jar包发布的,Linux下启动jar包和windows下一样,都是java -jar 包名,实际操作过的小伙伴可能会遇到这种情况:用java -jar启动之后,再切回到命令行服务会挂掉,怎么解决呢?使用nohup命令就不会了!
    例:

    jar包:micro-service/micro-eureka-server-0.0.1-SNAPSHOT.jar
    
    启动命令:nohup java -jar micro-service/micro-eureka-server-0.0.1-SNAPSHOT.jar &
    
    启动之后用 ctrl+c 回到命令行就不会挂掉了,想要看看启动起来没有可以查看进程:ps -ef | grep eureka

    当然,我们也可以在启动的时候指定某些配置:

    指定端口号:nohup java -jar micro-service/micro-eureka-server-0.0.1-SNAPSHOT.jar --server.port=8888 &

    其他的依葫芦画瓢…

    展开全文
  • 我的重启了自己dubbo上的服务,然后zookeeper就挂掉了,导致我所有的服务都连接不上 zookeeper? 这是什么原因导致的?还是踩到坑了
  • HBase RegionServer挂掉问题分析

    万次阅读 2018-08-16 19:39:32
    HBase在使用中会遇到非常多的问题,最为常见的就是HBase regionserver挂掉(此文中简称regionserverRS), 而RS挂掉的原因各不相同。在本文中对遇到过的HBase RS挂掉的情况做一个简单的整理。 HBase集群预留内存...

    HBase在使用中会遇到非常多的问题,最为常见的就是HBase regionserver挂掉(此文中简称regionserver为RS),

    而RS挂掉的原因各不相同。在本文中对遇到过的HBase RS挂掉的情况做一个简单的整理。

    HBase集群预留内存不足

    现象:HBase RS在起来1-2min后马上挂掉

    日志为如下日志段的重复

    Mon Aug  6 10:23:54 CST 2018 Starting regionserver on node2.rosa.com
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 127902
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 65536
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 2048
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited

    分析:此处可知所做的操作只是HBase RS的假启动,前端看上去好像是启动成功了,但是实际上并没有真正启动。

    解决思路:适当减小HBase RegionServer Maximum Memory对应的值。

     

    HBase集群时钟不同步

    现象:HBase RS运行一段时间后挂掉

    日志:

    ERROR [B.defaultRpcServer.handler=4,queue=1,port=16000] master.MasterRpcServices: Region server slave1,16020,1494163890158 reported a fatal error:
    
    ABORTING region server slave1,16020,1494163890158: Unhandled: org.apache.hadoop.HBase.ClockOutOfSyncException: Server slave1,16020,1494163890158 has been rejected; Reported time is too far out of sync with master.Time difference of 52782ms > max allowed of 30000ms

    分析:集群中的不同机器时间差较大,HBase集群对时钟同步要求较高。

    解决思路:

    1. 查看集群中/etc/ntp.conf的server配置是否合理,
    2. 利用service ntpd status来查看ntp的状态
    3. 利用service ntpd start启动ntp
    4. 利用ntpdate –u node1在三个节点立即进行时钟同步
    5. 利用chkconfig ntpd on设置所有节点ntp服务开机自启动。

     

    HBase集群zk的连接数设置过少

    现象:RS运行一段时间后挂掉

    日志:

    ERROR [regionserver/node1/101.12.38.119:16020] zookeeper.ZooKeeperWatcher: regionserver:16020-0x3651eb7c95b0006, quorum=node1:2181,node2:2181,node3:2181, 
    baseZNode=/HBase-unsecure Received unexpected KeeperException, re-throwing exceptionorg.apache.zookeeper.KeeperException$SessionExpiredException: 
    KeeperErrorCode = Session expired for /HBase-unsecure/replication/rs/node1,16020,1533819219139\

    查看zookeeper对应时间点的日志:

    2018-08-14 10:31:23,855 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@193] - Too many connections from /101.12.38.120 - max is 60
    2018-08-14 10:31:23,935 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@193] - Too many connections from /101.12.38.120 - max is 60
    2018-08-14 10:31:24,015 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@193] - Too many connections from /101.12.38.120 - max is 60
    2018-08-14 10:31:24,037 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@193] - Too many connections from /101.12.38.120 - max is 60
    2018-08-14 10:31:24,122 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@193] - Too many connections from /101.12.38.120 - max is 60
    2018-08-14 10:31:24,152 - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@193] - Too

    分析:zookeeper的连接数设置过少,在HBase的高并发业务时会出现如上问题

    解决思路:在zookeeper的配置文件zoo.cfg中添加如下自定义配置(该配置在hbase中默认值为60):

    添加:maxClientCnxns=600,重启zk,启动HBase。

    HBase无法写入(无法落地存到hdfs):

    日志:

    java.io.IOException: Failed to replace a bad datanode on the existing 
    pipeline due to no more good datanodes being available to try

    分析:无法写入,3个datanode,备份数量设置的是3。在写操作时,它会在pipeline中写3个机器。默认replace-datanode-on-failure.policy是DEFAULT,如果系统中的datanode大于等于3,它会找另外一个datanode来拷贝。目前机器只有3台,因此只要一台datanode出问题,就一直无法写入成功。

    处理方法:

    修改hdfs-site.xml文件,添加或者修改如下两项: 

       <property>
            <name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
             <value>true</value>
        </property>
    
        <property>
        <name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
         <value>NEVER</value>
        </property>

        对于dfs.client.block.write.replace-datanode-on-failure.enable,客户端在写失败的时候,是否使用更换策略,默认是true没有问题

    对于,dfs.client.block.write.replace-datanode-on-failure.policy,default在3个或以上备份的时候,是会尝试更换结点尝试写入datanode。而在两个备份的时候,不更换datanode,直接开始写。对于3个datanode的集群,只要一个节点没响应写入就会出问题,所以可以关掉。

     

    HBase读数据超时

    日志:

    ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: xxx:50010:DataXceiver error processing WRITE_BLOCK operation  src: /xxx:52827 dst: /xxx:50010
    
    java.net.SocketTimeoutException: 60000 millis timeout while waiting for channel to be ready for read. ch : java.nio.channels.SocketChannel[connected local=/xxx:50010 remote=/xxx:52827]

    分析:读数据超时,出现以上错误是因为datanode的服务线程连接数都被占用,导致等待超时。

    处理方法:

    1. datanode的资源情况适当增加的服务线程数:在hdfs-site.xml增加自定义配置文件里面新增或修改dfs.datanode.handler.count,默认是10,适当加大。
    2. 增加客户端的超时时间dfs.client.socket-timeout,默认是60000ms。
    3. 增大HBase配置项中的zookeeper session timeout数值。
    4. 增加DataNode max data transfer threads至合理数值。

     

    HBase GC优化

    报错如下:

    分析:

    从以上日志可以看出,session超时,其实服务是好的,只是被zk认为死了,所以rs自己也就把自己kill了。

    详细一点来说,一般来说RegionServer的堆内存越大越好,但是因为垃圾回收的缘故,内存大了之后,相应的FullGC时间也会线性增加。FullGC有时可能达到好几分钟,这个阶段会停止响应任何请求,相当于所有线程挂起,这种暂停又叫做Stop-The-World(STW),FullGc的对HBase造成严重后果比较严重:
    在Zookeeper检测RegionServer心跳包的时候,RegionServer正在FullGc无法回应,而如果超过阀值等待时间会被标记为宕机,这时候会将该RegionServer上的数据向其他RegionServer迁移,并且该RegionServer FullGc结束后发现自己被宕机了,为了防止脑裂,会停止自己(RegionServer自杀)。

    值得注意的是此处的报错,仍然不是深层次的原因,继续查看日志:

    2018-08-07 12:27:39,919 WARN  [regionserver/node1/210.26.111.41:16020] util.Sleeper: We slept 39000ms instead of 3000ms, this is likely due to a long garbage collecting pause and it's usually bad, see http://HBase.apache.org/book.html#trouble.rs.runtime.zkexpired

    2018-08-07 12:27:39,920 INFO  [node1,16020,1533607130571_ChoreService_1] regionserver.HRegionServer$CompactionChecker: Chore: CompactionChecker missed its start time

    2018-08-07 12:27:39,920 INFO  [main-SendThread(node2:2181)] zookeeper.ClientCnxn: Client session timed out, have not heard from server in 50201ms for sessionid 0x264ea4df477b894, closing socket connection and attempting reconnect

    2018-08-07 12:27:39,920 WARN  [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 37173ms

    GC pool 'ParNew' had collection(s): count=1 time=207ms

    由以上日志可见,存在Full GC的问题, 上文处的超时也由FULL GC引起。这种情况下,客户端发送的请求会受到阻塞,导致客户端无法正常写数据到HBase。

     

    修改:

    HBase写优化方面:

    1. HBase简单的写优化:增加HBasewrite buffer55%,减小HBaseread buffer25%write bufferread buffer的和不能超过80%
    2. 增加HBaseregionserver handler数至最大。
    3. HBase表的预分区修改

    Zk方面:

    官网建议将hbase-site.xml中的超时修改至120s。很多场景下会将zookeeper的心跳检测阀值调大,个人认为不是根本的解决办法。

    <property>
      <name>zookeeper.session.timeout</name>
      <value>120000</value>
    </property>
    <property>
      <name>hbase.zookeeper.property.tickTime</name>
      <value>6000</value>
    </property>

    做完这些操作后现场未恢复正常,建议进行HBasejvm调优如下:

    会产生FULL GC的原因:老年代回收慢(这里需要结合gc日志进行定位,在本文中gc日志没有po出来)。

     

    1.HBase堆内存

    系统可以使用export HBASE_HEAPSIZE=16384,16G的内存,下是官网的一段话:

    Thus, ~20-24Gb or less memory dedicated to one RS is recommended

    2.GC的参数设置

    HBASE jvm优化

    export HBASE_OPTS="$HBASE_OPTS -XX:+UseCompressedOops -XX:+UseParNewGC 
    -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseCMSCompactAtFullCollection 
    -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSParallelRemarkEnabled  
    -XX:CMSInitiatingOccupancyFraction=75 -XX:SoftRefLRUPolicyMSPerMB=0"

    具体参数含义如下:

    /* 压缩指针,解决内存占用 */
    -XX:+UseCompressedOops
    
    /*设置年轻代为并行收集*/
    -XX:+UseParNewGC
    
    /* 使用CMS内存收集*/
    -XX:+UseConcMarkSweepG
    
    /*相对于并行收集器,CMS收集器默认不会对永久代进行垃圾回收。如果希望对永久代进行垃圾回收,可用设置标志-XX:+CMSClassUnloadingEnabled。 
    在早期JVM版本中,要求设置额外的标志-XX:+CMSPermGenSweepingEnabled。注意,即使没有设置这个标志,一旦永久代耗尽空 间也会尝试进行垃圾回收,
    但是收集不会是并行的,而再一次进行Full GC。*/
    -XX:+CMSClassUnloadingEnabled
    
    /*使用并发收集器时,开启对年老代的压缩.*/
    -XX:+UseCMSCompactAtFullCollection
    
    /*由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生”碎片”,使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理.*/
    -XX:CMSFullGCsBeforeCompaction
    
    /*降低标记停顿*/
    -XX:+CMSParallelRemarkEnabled
    
    /*使用cms作为垃圾回收使用75%后开始CMS收集*/
    -XX:CMSInitiatingOccupancyFraction=75
    
    /*每兆堆空闲空间中SoftReference的存活时间*/
    -XX:SoftRefLRUPolicyMSPerMB

    参考:HBase JVM优化https://blog.csdn.net/wuwenxiang91322/article/details/52279529

    展开全文
  • redis 集群 如何才算挂掉

    千次阅读 2019-05-03 18:23:18
    1. redis 集群挂掉判定: 1》 redis 的其中一个主节点挂掉,并且他的从节点也挂掉 ,则证明整个redis集群挂掉 2》 redis 的主节点(master)有大于一般都挂掉,则证明整个redis集群挂掉 2. redis 集群的查看有...
  • ngix莫名挂掉 signal process started

    万次阅读 2019-01-08 18:28:18
    ngix莫名挂掉 error.log一直出现 signal process started 查看了access.log和error.log access.log: 43.245.218.208 - - [06/Jan/2019:18:08:43 +0800] "GET / HTTP/1.1" 200 555 "-" "...
  • filebeat 莫名其妙自动挂掉

    千次阅读 2019-11-18 10:37:03
    前言:前一段时间搭建改造了一套elk(filebeat+logstash+ksql+es+kibana)日志系统,最开始的时候是filebeat直接发送给es,后来需求需要改成发给logstash,后来就发现莫名其妙的filebeat每天或者不间断的挂掉。...
  • tomcat挂掉自动启动tomcat

    千次阅读 2017-11-23 11:10:43
    tomcat挂掉自动启动tomcat(bat脚本,不同版本server可能字符集不通)tomcat启动的时候为什么会有一个java.exe进程and如何在tomcat配置java环境
  • Linux系统中使用tomcat启用一个java项目,内存、CPU占用正常,但偶尔tomcat服务自己会挂掉, 如何通过系统日志,分析tomcat挂掉原因,是被系统kill,还是被人为停止?
  • 这是因为kafka logs目录下的meta.properties文件中的broker.id与server.properties中的broker.id不一致所导致,只需把两者改一致启动kafka后就不会自动挂掉
  • Jupyter notebook服务器挂掉解决方法

    千次阅读 2020-11-25 13:51:30
    在jupyter notebook 运行import keras 时服务器挂掉 解决方法: 重新卸载h5py 重装 pip3 uninstall h5py pip install h5py
  • mongodb 经常挂掉

    千次阅读 2015-07-16 14:58:38
    s from mongod.conf get there by mongod reading it # OPTIONS OPTIONS=" --dbpath=/home/data/mongodb/ --logpath=/home/data/mongodb/mongodb.log --logappend &amp;" .../usr/local/mongodb/bin/...
  • 导致Hbase挂掉的场景

    千次阅读 2017-07-01 15:53:51
    导致Hbase挂掉的场景HMasterHMaster会出现异常(执行abort())停止的场景如下:1.zk异常导致的master停止服务是最常见的场景,涉及操作包含但不限于以下: a)Zk链接超时,超时时间通过zookeeper.session.timeout配置...
  • 微服务迟早是要部署在Linux系统上的,当网络不稳定就会挂掉,但是挂掉后手动去重启是十分麻烦的,下面就以Eureka例配合shell脚本来实现自动重启。1、启动一台Eureka:20984 20490 99 17:57 pts/0 00:00:25 java -...
  • 项目连续几天突然挂掉

    万次阅读 2017-03-15 18:23:55
    这几天对我来说真的是犹如地狱般。上周项目所有开发工作基本完成,所以周一来到准备配合测试做bug和性能修复。...开始查看项目挂掉时的log,但是log里只有那几行记录,没有明显的错误信息,如下: 2017-03-13 20:27:30
  • 自动重启挂掉的python脚本

    万次阅读 2015-05-09 13:30:55
    因为跑程序,因为内存问题或者GPU问题,程序可能会偶尔挂掉,我们又不能整天盯着程序,怎么办呢?写个脚本来检查程序是否挂掉,如果挂掉就重启,这是一个不错的想法,具体做法依操作系统而不同。方法1 在linux下...
  • kafka节点启动后无故挂掉

    千次阅读 2019-03-08 19:21:43
    背景:kafka节点启动后,突然挂掉,重试几次后,也是如此 查看日志信息如下 Configured broker.id 0 doesn’t match stored broker.id 3 in meta.properties. If you moved your data, make sure your configured ...
  • 解决 mysql 数据库 挂掉

    千次阅读 2016-02-22 11:32:00
    问题 : mysql运行几天之后就挂掉了 , 修改了mysql 的连接数也解决不了,看代码也没有什么问题,但就是感觉哪个功能一直占着mysql资源,查了一下当前的线程状态 time的单位是 秒 , 可以看的出来,好多线程都占用...
  • offsets-20 __consumer_offsets-35 __consumer_offsets-5 4.2 为什么生产者能够发送数据到topic:test 由于topic:test的副本为3,即使在kafka01上的分区副本挂掉了,在kafka02,kafka03上还有其副本,故往 topic:test发送...
  • kafka启动后会挂掉的原因

    千次阅读 2019-11-08 20:31:03
    在三台节点上看: cd /opt/kafka/logs/ more meta.properties 看在meta.properties中的broker.id和你在/opt/kafka/config/server.properties中的broker.id是否一致。 ...henu4 节点上的 /opt/kafka/config/server....
  • JAVA 程序突然挂掉排查记录

    千次阅读 2020-07-16 10:49:51
    1.程序运行一段时间后,突然挂掉,程序日志无任何异常记录 2.查看系统日志(/var/log/message)会发现是被系统杀死 原因: Linux 内核根据应用程序的要求分配内存,通常来说应用程序分配了内存但是并没有实际全部...
  • 先贴上代码 ``` void FortuneWriteThread::run() { QTcpSocket tcpSocket; if (!...挂掉,debug不出挂掉的原因 我在if(block.length() && (block.length() ))下面的大括号里加上lock还是会挂。
  • JAVA进程突然挂掉

    千次阅读 2017-02-06 11:03:00
    背景,测试服务器上的一些JAVA进程突然挂掉,查看call back的日志发现如下: # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map ...
  • 点击上方蓝色“大数据实战演练”,选择“设星标”或“置顶”回复“资源”领取独家整理的学习资料!每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。放弃不难,但坚持很酷~kafka版本...
  • 我第一个被挂掉的面试,应该是京东云了,那时候才7月初,我在焦急的等待着阿里的二面,然后京东电话打来了,心态爆炸了; 所以理所应当的挂掉了,其实问的基础知识不难,如果这个面试发生在9月份的话 我都忘记问了...
  • WebSocket服务挂掉问题记录

    千次阅读 2019-05-22 03:20:58
    之前使用websocket服务H5页面进行实时数据推送,突然有一天产品给我反馈,说该页面的实时刷新功能失效了,于是开始进行排查和处理,并将过程记录下来。 这个服务是有监控程序的,每分钟检查一次websocket是否正常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 212,848
精华内容 85,139
关键字:

为什么挂掉