apache2设置core dump文件(debian7)

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
我的博客已迁移到xdoujiang.com请去那边和我交流
一、基础环境
1、发行版本
uname  -a
Linux 10.1.10.117 3.2.0-4-amd64  #1 SMP Debian 3.2.68-1+deb7u1 x86_64 GNU/Linux
 
2、安装apache2
apt-get -y  install  apache2-mpm-prefork
 
3、创建目录和赋予权限
mkdir  /opt/game/core  -p
chown  www-data  /opt/game/core/  -R
 
二、打开core dump功能
1、查看core dump是否打开
ulimit  -c
0
ulimit  -a
core  file  size          (blocks, -c) 0
参数说明
-c 表示内核转储文件的大小限制 零表示未打开core dump功能 设定core文件的最大值 单位为区块。 
-a 显示当前所有的资源限制
 
2、修改配置(单位KB)
cat  /etc/security/limits .conf
*                soft    core             2048000
*                hard    core             2048000
 
3、生效
ulimit  -c 2048000
 
4、检查
ulimit  -a
core  file  size          (blocks, -c) 2048000
ulimit  -c
2048000
 
二、修改core文件保存的路径
1、临时修改
1)core文件保存在 /opt/game/core 目录下
echo  "/opt/game/core/%e.core.%s.%p.%h.%t"  /proc/sys/kernel/core_pattern
2)生成的core文件名将会变成core.pid
echo  1 >  /proc/sys/kernel/core_uses_pid
 
2、永久修改 
1)在配置最后增加2行
cat  /etc/sysctl .conf
kernel.core_pattern =  /opt/game/core/ %e.core.%s.%p.%h.%t
kernel.core_uses_pid = 1
2)永久生效
sysctl -p
3)参数说明
%e  executable filename (without path prefix)                                          #dump的文件名
%p  PID of dumped process, as seen  in  the PID namespace  in  which  the process resides   #dump的进程PID
%t   time  of dump, expressed as seconds since the Epoch,1970-01-01 00:00:00 +0000      #转储时刻(由1970年1月1日起计的秒数)
%h   hostname  (same as nodename returned by  uname (2))                                   #主机名
%s  number of signal causing dump                                                      #coredump的信号 
 
三、apache2设置
1、再 /etc/apache2/apache2 .conf最后添加1行
cat  /etc/apache2/apache2 .conf
CoreDumpDirectory  /opt/game/core
 
2、参数说明
语法:CoreDumpDirectory directory-path
这个指令用来控制Apache使用的内核转储目录,该转储目录默认位于“ServerRoot”下。因为这个目录通常对于运行服务器的用户是不可写的,
内核转储一般也不会写入内容。如果你在调试中需要内核转储,那么你可以用这个指令来指定另外一个目录。
 
3、重启apache2服务
/etc/init .d /apache2  restart
 
4、杀死apache2进程
先查看下apache2进程
root       2342  0.0  1.2  71568  2916 ?        Ss   02:29   0:00  /usr/sbin/apache2  -k start
www-data   2344  0.0  0.8  71592  2132 ?        S    02:29   0:00  /usr/sbin/apache2  -k start
www-data   2345  0.0  0.8  71592  2132 ?        S    02:29   0:00  /usr/sbin/apache2  -k start
www-data   2348  0.0  0.8  71592  2132 ?        S    02:29   0:00  /usr/sbin/apache2  -k start
www-data   2349  0.0  0.8  71592  2132 ?        S    02:29   0:00  /usr/sbin/apache2  -k start
www-data   2350  0.0  0.8  71592  2132 ?        S    02:29   0:00  /usr/sbin/apache2  -k start
kill  -11 2342
kill  -11 2344
kill  -11 2345
kill  -11 2348
kill  -11 2349
kill  -11 2350
信号11说明
11) SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.
 
5、查看到已经有core产生了
ll  /opt/game/core/
-rw------- 1 root     root     2596864 May 21 02:38 apache2.core.11.2342.10.1.10.117.1432190336
-rw------- 1 www-data www-data 2621440 May 21 02:38 apache2.core.11.2344.10.1.10.117.1432190338
-rw------- 1 www-data www-data 2621440 May 21 02:38 apache2.core.11.2345.10.1.10.117.1432190339
-rw------- 1 www-data www-data 2621440 May 21 02:39 apache2.core.11.2348.10.1.10.117.1432190344
-rw------- 1 www-data www-data 2621440 May 21 02:39 apache2.core.11.2349.10.1.10.117.1432190346
-rw------- 1 www-data www-data 2621440 May 21 02:39 apache2.core.11.2350.10.1.10.117.1432190349
 
6、使用gdb程序
1)先安装gdb
apt-get -y  install  gdb
2)使用gdb程序查看
gdb apache2 -core  /opt/game/core/apache2 .core.11.2342.10.1.10.117.1432190336
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http: //gnu .org /licenses/gpl .html>
This is  free  software: you are  free  to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type  "show copying"
and  "show warranty"  for  details.
This GDB was configured as  "x86_64-linux-gnu" .
For bug reporting instructions, please see:
<http: //www .gnu.org /software/gdb/bugs/ >...
Reading symbols from  /usr/sbin/apache2 ...(no debugging symbols found)... done .
[New LWP 2342]
warning: Can't  read  pathname  for  load map: Input /output  error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library  "/lib/x86_64-linux-gnu/libthread_db.so.1" .
Core was generated by ` /usr/sbin/apache2  -k start'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f1d26736433 in select () from /lib/x86_64-linux-gnu/libc.so.6
 
四、参考文章
http: //www .cnblogs.com /hazir/p/linxu_core_dump .html 
http: //man7 .org /linux/man-pages/man5/core .5.html
http: //www .cyberciti.biz /tips/configure-apache-web-server-for-core-dump .html









本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1671716,如需转载请自行联系原作者
相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
7月前
|
Java API Apache
使用 Apache PDFBox 操作PDF文件
Apache PDFBox库是一个开源的Java工具,专门用于处理PDF文档。它允许用户创建全新的PDF文件,编辑现有的PDF文档,以及从PDF文件中提取内容。此外,Apache PDFBox还提供了一些命令行实用工具。
568 6
|
算法 Apache C++
干货!Apache Hudi如何智能处理小文件问题
Apache Hudi是一个流行的开源的数据湖框架,Hudi提供的一个非常重要的特性是自动管理文件大小,而不用用户干预。大量的小文件将会导致很差的查询分析性能,因为查询引擎执行查询时需要进行太多次文件的打开/读取/关闭。在流式场景中不断摄取数据,如果不进行处理,会产生很多小文件。
544 0
干货!Apache Hudi如何智能处理小文件问题
|
Java Maven Android开发
eclipse 中 maven的pom.xml文件发生错误:CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven...
eclipse 中 maven的pom.xml文件发生错误:CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven...
666 0
eclipse 中 maven的pom.xml文件发生错误:CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven...
|
3月前
|
Apache
多应用模式下,忽略项目的入口文件,重写Apache规则
本文介绍了在多应用模式下,如何通过编辑Apache的.htaccess文件来重写URL规则,从而实现忽略项目入口文件index.php进行访问的方法。
|
4月前
|
安全 搜索推荐 数据挖掘
文件解析的终极工具:Apache Tika
文件解析的终极工具:Apache Tika
203 0
|
6月前
|
easyexcel Java API
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
|
Java
IDEA 报错:org.apache.jasper.JasperException:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri
IDEA 报错:org.apache.jasper.JasperException:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri
2577 0
IDEA 报错:org.apache.jasper.JasperException:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri
|
7月前
|
网络协议 Linux Windows
如何在 Debian 11 上设置 DHCP 服务器?
如何在 Debian 11 上设置 DHCP 服务器?
284 1
|
7月前
|
Java Apache
Apache HttpClient 4.5设置超时时间
Apache HttpClient 4.5设置超时时间
243 0
|
7月前
|
消息中间件 Kafka Apache
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
171 1