2017-03-09 121 views
1

我嘗試使用默認設置運行Elasticsearch,但沒有任何數據。我只是解壓tarball並運行./bin/elasticsearch。問題是它永遠掛不下去。日誌中沒有任何內容,stdout上沒有輸出。這是一個潛在的安全限制和資源訪問控制策略的機器。Elasticsearch在啓動時掛起

$ ./bin/elasticsearch -V 
Version: 5.2.2, Build: f9d9b74/2017-02-24T17:26:45.835Z, JVM: 1.8.0_111 

Linux版本的:

$ uname -a 
Linux [...] 2.6.18-406.el5 #1 SMP Fri May 1 10:37:57 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux 
$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 5.11 (Tikanga) 

的Java:

[...] 
mmap(0x3f61a00000, 2629848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3f61a00000 
mprotect(0x3f61a82000, 2093056, PROT_NONE) = 0 
mmap(0x3f61c81000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x81000) = 0x3f61c81000 
close(3)        = 0 
mprotect(0x3f61c81000, 4096, PROT_READ) = 0 
access("/path/to/elasticsearch-5.2.2/lib/*", F_OK) = -1 ENOENT (No such file or directory) 
open("/path/to/elasticsearch-5.2.2/lib/", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3 
fcntl(3, F_SETFD, FD_CLOEXEC)   = 0 
getdents(3, /* 35 entries */, 32768) = 1592 
getdents(3, /* 0 entries */, 32768)  = 0 
close(3)        = 0 
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x2b25d806b000 
mprotect(0x2b25d806b000, 4096, PROT_NONE) = 0 
clone(child_stack=0x2b25d816b250, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x2b25d816b9d0, tls=0x2b25d816b940, child_tidptr=0x2b25d816b9d0) = 9136 
futex(0x2b25d816b9d0, FUTEX_WAIT, 9136, NULL 

跟蹤一個子線程的多次打印:

$ java -version 
java version "1.8.0_111" 
Java(TM) SE Runtime Environment (build 1.8.0_111-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) 

strace的輸出尾

futex(0x148e954, FUTEX_WAIT_PRIVATE, 1, {0, 756577000}) = -1 ETIMEDOUT (Connection timed out) 
futex(0x148e928, FUTEX_WAKE_PRIVATE, 1) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698412, 584730159}) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698412, 584758159}) = 0 
futex(0x148e954, FUTEX_WAIT_PRIVATE, 1, {4, 999972000}) = -1 ETIMEDOUT (Connection timed out) 
futex(0x148e928, FUTEX_WAKE_PRIVATE, 1) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698417, 586260159}) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698417, 586288159}) = 0 
futex(0x148e954, FUTEX_WAIT_PRIVATE, 1, {4, 999972000}) = -1 ETIMEDOUT (Connection timed out) 
futex(0x148e928, FUTEX_WAKE_PRIVATE, 1) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698422, 586801159}) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698422, 586831159}) = 0 
futex(0x148e954, FUTEX_WAIT_PRIVATE, 1, {4, 999970000}) = -1 ETIMEDOUT (Connection timed out) 
futex(0x148e928, FUTEX_WAKE_PRIVATE, 1) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698427, 588349159}) = 0 
clock_gettime(CLOCK_MONOTONIC, {18698427, 588380159}) = 0 

它總是阻塞在同一個電話上。我有一個非常類似的機器,Elasticsearch開始就好了。我無法弄清楚它在一臺機器上的啓動和其他機器上的差異。

+1

我想你正在看父母的線程。運行類似「ps -efL | grep java」的命令來獲取衍生的線程,然後用該pid執行strace以查看子線程內真正發生的事情。 – salyh

+0

謝謝,編輯添加有關子線程的信息。 –

+1

你能分享你的elasticsearch配置嗎? (例如elasticsearch.yml,如果你有其他的配置文件等) – Adonis

回答

0

有關記錄,此問題是由NFS掛載點發生故障引起的。很明顯,Elasticsearch會通過NFS掛載點並掛起,如果其中一個被掛起。