0
컨테이너에서 프로세스 (서비스)를 실행하고 있습니다. 몇 분이 지나면 프로세스가 중지되거나 충돌하지만 코어 덤프가 생성되지 않습니다.OpenVZ Container에서 코어 덤프를 만들지 않고 프로세스가 중지됩니다.
의도적으로 코어 덤프를 만들려고 할 때 (예 : 내 프로그램에서 10/0을 나누기) 코어 덤프를 만듭니다.
하지만 같은 프로세스 (의도적 인 충돌 없음)가 중지되고 코어 덤프가 생성되지 않습니다.
무엇이 문제 일 수 있습니까? 귀하는 /etc/security/limits.conf에
[[email protected] ~]# sysctl -a |egrep -i "core"
kernel.core_uses_pid = 1
kernel.core_pattern = core.%e.%p
kernel.core_pipe_limit = 4
net.core.somaxconn = 128
net.core.xfrm_aevent_etime = 10
net.core.xfrm_aevent_rseqth = 2
net.core.xfrm_larval_drop = 1
net.core.xfrm_acq_expires = 30
net.core.wmem_max = 131071
net.core.rmem_max = 131071
net.core.wmem_default = 133120
net.core.rmem_default = 133120
net.core.dev_weight = 64
net.core.netdev_max_backlog = 1000
net.core.message_cost = 5
net.core.message_burst = 10
net.core.optmem_max = 20480
net.core.rps_sock_flow_entries = 0
net.core.netdev_budget = 300
net.core.warnings = 1
[[email protected] ~]# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 8041
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
프로그램이 실제로 비정상적으로 충돌/종료되었는지 어떻게 확인 했습니까? 정상적으로 종료되었을 수 있습니까? –
그것은 무한 루프에서 돌아가는 데몬입니다. 그렇게하도록 요청하지 않으면 정상적으로 종료되지 않았을 것입니다. :-) 이것은 OpenVZ 환경에서만 발생합니다. –
실제 코드가 없으면 예측하기가 매우 어렵습니다. 코드를 붙여 넣을 수 있습니까? 허용되면? –