`
hongtoushizi
  • 浏览: 376464 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Web服务器磁盘满故障深入解析

阅读更多

转载自:  http://oldboy.blog.51cto.com/2561410/612351

 

 

#########################################################
# 硬盘显示被写满但是用du -sh /*查看时占用硬盘空间之和还远
#小于硬盘大小问的解决
#date:2010-06-09
#作者:老男孩---《老男孩linux就业培训中心 》
#QQ:31333741 MAIL:oldboy521@hotmail.com
#QQ交流群:45039636    
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即将开放)
#pblog:http://blog.etiantian.org
##########################################################


问题:硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小
即找不到硬盘分区是怎么被写满的。

今天下午接到一学生紧急求助,说生产线服务器硬盘满了。该删的日志都删掉了。可空间还是满的,情况危急啊。这个问题,在多年以前直接和间接的遇到过3-4次。以前太懒惰了,这次记录下来和大家分享。


相关日志如下:

█ 查看硬盘分区大小
[root@www ~]# cat /etc/redhat-release 
CentOS release 5.3 (Final)
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G  111G     0 100% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm
这是一台web服务器(apache+tomcat+mysql)
通过dh -h命令查看 总大小117G,使用了111G
[root@www /]# fdisk -l

Disk /dev/sda: 146.8 GB, 146815733760 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          19      152586   83  Linux
/dev/sda2              20        2108    16779892+  82  Linux swap / Solaris
/dev/sda3            2109       17849   126439582+  83  Linux
[root@www /]# fdisk -l /dev/sda3

Disk /dev/sda3: 129.4 GB, 129474132480 bytes
255 heads, 63 sectors/track, 15741 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda3 doesn't contain a valid partition table
==========================================================================================
█ 使用du命令查看到底哪些目录占用了空间
[root@www /]# du -sh /*
8.6M    /bin
6.1M    /boot
2.8G    /data ===》这里是DB目录
124K    /dev
60M     /etc
1.6G    /home ===》这里是日志目录
120M    /lib
24M     /lib64
16K     /lost+found
8.0K    /media
0       /misc
12K     /mnt
0       /net
8.0K    /opt
0       /proc
614M    /root
35M     /sbin
8.0K    /selinux
24K     /server
8.0K    /srv
0       /sys
24K     /tmp
2.5G    /usr
29G     /var  ==》这里是www目录

可以看出,上面所有目录之和 远小于总的空间占用111G,是什么占用了硬盘,还查不到呢?
---------------
解答:
出现上面问题原因:
在apache/tomcat服务在运行状态下,清空了运行服务的日志,这里是清理了当天或正在写入的apache及tomcat的日志文件,从而导致了上面问题。(有关原理细节见下文)

引申下:
一般情况下,大多数服务(包括脚本)在运行时,是不能删除当前正在写入的日志文件的。这点请大家要记牢。

本文的解决办法:
查找机器自身的服务,然后重起apache和tomcat。
重起apache后:
[root@www 07]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G  109G  2.3G  98% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm

重起tomcat后:
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             117G   38G   74G  34% /
/dev/sda1             145M   12M  126M   9% /boot
tmpfs                 3.0G     0  3.0G   0% /dev/shm
 

 

删除文件原理图:

1
老男孩运维班28期上述案例实战模拟:
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
(1)安装httpd web服务
  yum install httpd -y
  /etc/init.d/httpd start
  lsof -i :80
  /etc/init.d/iptables stop
  cd/etc/httpd/conf 编辑配置文件,让日志记录到/app/logs下面。
sed -i's@#CustomLog logs/access_log common@CustomLog /app/logs/access_logcommon@g' httpd.conf 
 (2)创建一个小的文件系统,用于存放上述access_log日志。
  dd if=/dev/zero of=/dev/sdc bs=8K  count=10
  ls -l /dev/sdc
  mkfs -t ext4 /dev/sdc
  tune2fs -c -1 /dev/sdc
  mount -o loop /dev/sdc /app/logs
  echo oldboy >/var/www/html/index.html
 (3)重启httpd服务,确保日志记录到了上述文件系统挂载的/app/log下面
  /etc/init.d/httpd restart
 (4)写个循环脚本访问httpd,使得httpd日志充满/app/logs整个空间。
 for in `seq 100000`;do curl -s 127.0.0.1>/dev/null;done
[root@C64log]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.2G  2.0G 4.9G  30% /
tmpfs                 244M     0 244M   0% /dev/shm
/dev/sda1             194M   54M 131M  30% /boot
/dev/sdc               73K   73K    0 100% /app/log
     (5)错误的删除方案
[root@oldboylogs]# rm -f /app/logs/access_log
[root@oldboylogs]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3       8.8G 1.6G  6.9G  19% /
tmpfs           491M     0 491M   0% /dev/shm
/dev/sda1       190M  36M  145M  20% /boot
/dev/sdc         73K  68K  1.0K  99% /app/logs
提示:此时空间并未被释放,你可知道原因?
    查看被删除的但仍由进程占用的文件名。
[root@oldboylogs]# lsof|grep del
httpd      6148     root    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38178   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38483   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38484   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
httpd     38752   apache    7w      REG   7,0    55260         12 /app/logs/access_log (deleted)
 (5)解决问题
1、请先停掉模拟访问测试脚本
forn in `seq 100000`;do curl -s 127.0.0.1 >/dev/null;done
2、重启Http服务
[root@C64log]# /etc/init.d/httpd restart
Stoppinghttpd:                                           [  OK  ]
Startinghttpd:                                          [ OK  ]
 (6)查看处理结果
[root@C64log]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.2G  2.0G 4.9G  30% /
tmpfs                 244M     0 244M   0% /dev/shm
/dev/sda1             194M   54M 131M  30% /boot
/dev/sdc               73K   14K  55K  21%/app/logs
(7)较好的处理方案
清空日志而不删除日志。
>/app/logs/access_log

 

 

分享到:
评论

相关推荐

    服务器磁盘缓存supercache3.0.2.0含注册机

    《服务器磁盘缓存技术与SuperCache 3.0.2.0的深度解析》 在信息化高速发展的今天,服务器性能的优化对于企业运营至关重要。其中,磁盘缓存技术作为提升服务器I/O性能的关键一环,备受关注。SuperCache 3.0.2.0是一...

    web服务器监控(一)

    本文将深入探讨"Web服务器监控(一)"这一主题,结合源码分析和实用工具介绍,帮助你更好地理解和掌握这个领域的重要知识点。 首先,我们要了解什么是Web服务器。Web服务器是负责处理HTTP请求并返回HTML页面或其它...

    深入解析Windows操作系统中文.part2.rar

    深入解析WINDOWS操作系统(第4版) ISBN:9787121039690 本书是著名的操作系统内核专家Mark Russinovich和David Solomon撰写的Windows操作系统原理的最新版著作,全面和深入地阐述了Windows操作系统的整体结构以及...

    web server

    本资源聚焦于"web server"这一核心概念,下面将深入探讨Web服务器的工作原理、常见类型以及相关配置和优化。 一、Web服务器的工作原理 Web服务器的核心功能是处理HTTP请求,并响应相应的HTTP响应。当用户在浏览器...

    高并发服务器源码web_server

    《深入剖析高并发服务器源码:web_server》 在当今互联网时代,高并发服务器已经成为支撑大规模业务系统不可或缺的重要组成部分。本文将围绕“web_server”这一高并发服务器的源码进行深度解析,帮助开发者理解其...

    服务器集群配置详细教程

    本详细教程旨在深入解析服务器集群配置的关键概念、步骤和技术,帮助你构建稳定、高效的集群环境。 一、服务器集群的概念与类型 服务器集群是指将多台独立的服务器通过高速网络连接起来,形成一个整体的计算资源池...

    domino服务器【详细配置说明】

    以下是对"domino服务器【详细配置说明】"的深入解析: 一、Domino服务器安装与初始化 1. 安装Domino服务器:首先,你需要下载并安装适合操作系统的Domino服务器版本。安装过程中,系统会提示你选择安装路径、数据库...

    电视台Linux服务器维护实例解析.pdf

    Linux 服务器在电视台的运营中扮演着至关重要的角色,它们为网络管理、存储管理、数据库管理、Web服务以及虚拟化计算提供了坚实的基础。Linux 操作系统以其稳定性、安全性及可扩展性,成为企业级服务器的首选。Linux...

    2018服务器批量管理软件

    2. **服务部署**:快速部署各种应用服务,如Web服务器、数据库服务器、邮件服务器等。 3. **备份与恢复**:定期备份托管服务器的数据,当发生故障时,可以快速恢复。 4. **安全审计**:定期进行安全检查,发现潜在...

    服务器集群设计.docx

    ### 服务器集群设计的核心知识点解析 #### 一、服务器集群技术概述 服务器集群技术是一种将多台物理服务器联合起来作为一个整体向用户提供服务的技术。这项技术的发展伴随着服务器硬件系统与网络操作系统的进步,...

    给大家一个服务器的教程

    在服务器上部署服务,我们需要熟悉各种服务器软件,如Web服务器(Apache、Nginx)、数据库服务器(MySQL、PostgreSQL)、FTP服务器(vsftpd、FileZilla Server)等。每个服务的安装和配置都有其特定步骤,包括安装...

    vmware vsan 故障排查手册

    Virtual SAN是一种分布式存储解决方案,将集群中的物理服务器磁盘和闪存资源整合为一个统一的、高性能的存储池。常见的故障排除场景包括性能下降、数据丢失、网络通信问题以及组件故障。手册详细介绍了这些情况的...

    课堂ppt(认识服务器).rar

    服务器的主要类型包括Web服务器、应用服务器、数据库服务器、邮件服务器等。Web服务器处理HTTP协议的请求,向用户展示网页内容;应用服务器则负责运行企业级应用程序,为业务逻辑提供支持;数据库服务器存储和管理...

    电信设备-客户端-服务器设备通信系统内的服务器设备及其操作方法.zip

    它们可以是Web服务器、数据库服务器、应用服务器等,各自承担不同的任务,如提供网页内容、管理数据或执行特定应用程序。 2. **客户端-服务器通信模型**: 这种通信模型基于请求-响应机制。客户端(通常是用户的...

    火狐JSP探针,测试您的服务器

    - **故障排查**:当遇到应用运行问题时,可以通过探针获取服务器环境的详细信息进行故障定位。 - **资源规划**:根据探针反馈的服务器信息,合理规划服务器资源分配,避免资源浪费。 ##### 4. 使用技巧 - **自定义...

    H3CNE-Server【H3C服务器】培训PPT.rar

    本篇将依据"01 工业标准服务器介绍"、"02 服务器硬件架构及技术"和"03 服务器常用操作系统"这三个主题,深入解析H3C服务器的相关知识点。 一、工业标准服务器介绍 工业标准服务器,也称为通用服务器,遵循业界统一...

    contrail-web-server-manager:contrail 服务器管理器的 UI

    《contrail-web-server-manager:深度解析与应用指南》 在IT行业中,管理和监控服务器的效率与安全性至关重要。本文将深入探讨“contrail-web-server-manager”这一服务器管理工具,特别是其用户界面(UI)的设计和...

    linux服务器搭建文档

    以上只是Linux服务器搭建的一些基础要点,实际操作中还会涉及更多细节,如域名解析、邮件服务器配置、Web服务器搭建(Apache/Nginx)、数据库服务(MySQL/MongoDB)管理等。深入学习和实践将帮助你成为一位出色的...

    Windows Server 2003服务器群集创建和配置指南.doc

    配置完成后,可以开始添加应用程序到群集服务中,如Web服务器、数据库服务器等。群集管理工具(如“群集管理器”)可用于监视群集状态,进行故障转移和资源管理。 总的来说,创建和配置Windows Server 2003服务器...

Global site tag (gtag.js) - Google Analytics