1. 程式人生 > >Nginx開啟/關閉Core檔案及除錯

Nginx開啟/關閉Core檔案及除錯

1. Nginx生成core的配置

  1. ulimit -a 可以檢視系統core檔案的大小限制(第一行),core檔案大小設定為0, 即沒有開啟core dump設定。
	core file size          (blocks, -c) 1024
	data seg size           (kbytes, -d) unlimited
	scheduling priority             (-e) 0
	file size               (blocks, -f) unlimited
	pending signals                 (-i) 774535
	max locked memory       (kbytes, -l) 64
	max memory size         (kbytes, -m) unlimited
	open files                      (-n) 655360
	pipe size            (512 bytes, -p) 8
	POSIX message queues     (bytes, -q) 819200
	real-time priority              (-r) 0
	stack size              (kbytes, -s) 10240
	cpu time               (seconds, -t) unlimited
	max user processes              (-u) 10240
	virtual memory          (kbytes, -v) unlimited
	file locks                      (-x) unlimited

如果未開啟,則執行

ulimit -c unlimited
  1. 修改nginx.conf配置檔案
worker_rlimit_core 10000m;
working_directory /usr/local/nginx/logs;

2. Nginx core生成之後的除錯

gdb process core.1123

3. 如果沒生成core檔案

  • 執行 dmsp|grep nginx
nginx[6802]: segfault at 41f79 ip 00000000004efef4 sp 00007ffe3ee73fe0 error 4 in lmss[400000+142000]
  • 使用addr2line工具執行 addr2line -e binary 00000000004efef4 -f。其中00000000004efef4就是上面欄位ip後面的值,binary是可執行檔案, 然後就可以找到出問題的檔名和行號