zoukankan      html  css  js  c++  java
  • Elasticsearch宕机问题

    个人博客:https://blog.sharedata.info/

    Elasticsearch 突然宕机,每次重启都只生成错误日志
    报错信息:
    #
    # There is insufficient memory for the Java Runtime Environment to continue.
    # Native memory allocation (mmap) failed to map 10039525376 bytes for committing reserved memory.
    # Possible reasons:
    # The system is out of physical RAM or swap space
    # In 32 bit mode, the process size limit was hit
    # Possible solutions:
    # Reduce memory load on the system
    # Increase physical memory or swap space
    # Check if swap backing store is full
    # Use 64 bit Java on a 64 bit OS
    # Decrease Java heap size (-Xmx/-Xms)
    # Decrease number of Java threads
    # Decrease Java thread stack sizes (-Xss)
    # Set larger code cache with -XX:ReservedCodeCacheSize=
    # This output file may be truncated or incomplete.
    #
    # Out of Memory Error (os_linux.cpp:2627), pid=6337, tid=0x00007f6e8f0a3700
    #
    # JRE version: (8.0_111-b14) (build )
    # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.111-b14 mixed mode linux-amd64 compressed oops)
    # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
    #

    --------------- T H R E A D ---------------

    Current thread (0x00007f6e8800a800): JavaThread "Unknown thread" [_thread_in_vm, id=6339, stack(0x00007f6e8efa3000,0x00007f6e8f0a4000)]

    Stack: [0x00007f6e8efa3000,0x00007f6e8f0a4000], sp=0x00007f6e8f0a22d0, free space=1020k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V [libjvm.so+0xac5c2a] VMError::report_and_die()+0x2ba
    V [libjvm.so+0x4fc50b] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b
    V [libjvm.so+0x922ae3] os::Linux::commit_memory_impl(char*, unsigned long, bool)+0x103
    V [libjvm.so+0x923039] os::pd_commit_memory(char*, unsigned long, unsigned long, bool)+0x29
    V [libjvm.so+0x91d33a] os::commit_memory(char*, unsigned long, unsigned long, bool)+0x2a
    V [libjvm.so+0xac1989] VirtualSpace::expand_by(unsigned long, bool)+0x199
    V [libjvm.so+0xac24de] VirtualSpace::initialize(ReservedSpace, unsigned long)+0xee
    V [libjvm.so+0x5f9e61] CardGeneration::CardGeneration(ReservedSpace, unsigned long, int, GenRemSet*)+0xf1
    V [libjvm.so+0x4e5c2e] ConcurrentMarkSweepGeneration::ConcurrentMarkSweepGeneration(ReservedSpace, unsigned long, int, CardTableRS*, bool, FreeBlockDictionary<FreeChunk>::DictionaryChoice)+0x4e
    V [libjvm.so+0x5faf22] GenerationSpec::init(ReservedSpace, int, GenRemSet*)+0xf2
    V [libjvm.so+0x5e9d5e] GenCollectedHeap::initialize()+0x1de
    V [libjvm.so+0xa8dd53] Universe::initialize_heap()+0xf3
    V [libjvm.so+0xa8e2be] universe_init()+0x3e
    V [libjvm.so+0x63c925] init_globals()+0x65
    V [libjvm.so+0xa719be] Threads::create_vm(JavaVMInitArgs*, bool*)+0x23e
    V [libjvm.so+0x6d11c4] JNI_CreateJavaVM+0x74
    C [libjli.so+0x745e] JavaMain+0x9e
    C [libpthread.so.0+0x7aa1] start_thread+0xd1


    ----------
    根据报错信息应该是内存溢出了,排查一下内存状况,发现内存充足,此时es分配给8G的内存
    1:上调内存到10G发现还是崩溃,继续排查,然后查看硬盘已经使用了40%
    2:物理硬盘内存小而jvm的内存分配过大导致的,调整了jvm的内存大小重新访问可以了,调整内存到4G然后就可以访问了
    编辑:jvm.options
    -Xms4g
    -Xmx4g

  • 相关阅读:
    「SOL」开关(LOJ)
    「SOL」星际迷航(LOJ)
    「NOTE」概率生成函数
    「SOL」谢特(LOJ)
    「SOL」重建计划(BZOJ)
    「SOL」Tug of War(洛谷)
    「SOL」同余方程(LOJ)
    「SOL」Bad Cryptography(Codeforces)
    「SOL」小A与两位神仙(洛谷)
    「SOL」Social Distance(AtCoder)
  • 原文地址:https://www.cnblogs.com/byteworld/p/6963635.html
Copyright © 2011-2022 走看看