(1)    安装httpd web服务

yum install httpd -y

[root@root ~]# /etc/init.d/httpd start

Starting httpd: httpd: apr_sockaddr_info_get() failed for root

httpd: Could not reliably determine the server'sfully qualified domain name, using 127.0.0.1 for ServerName

[  OK  ]

cd /etc/httpd/conf 编辑配置文件,让日志记录到/app/logs 下面

[root@root ~]# cd /etc/httpd/conf

检查80端口是否开启

[root@root conf]# lsof -i :80

COMMAND PID   USER   FD  TYPE DEVICE SIZE/OFF NODE NAME

httpd  2032   root    4u IPv6  13936      0t0 TCP *:http (LISTEN)

httpd   2034apache    4u  IPv6 13936      0t0  TCP *:http (LISTEN)

httpd   2035apache    4u  IPv6 13936      0t0  TCP *:http (LISTEN)

httpd   2036apache    4u  IPv6 13936      0t0  TCP *:http (LISTEN)

httpd   2037apache    4u  IPv6 13936      0t0  TCP *:http (LISTEN)

httpd   2038apache    4u  IPv6 13936      0t0  TCP *:http (LISTEN)

httpd   2039apache    4u  IPv6 13936      0t0  TCP *:http (LISTEN)

httpd   2040apache    4u  IPv6 13936      0t0  TCP *:http (LISTEN)

httpd   2041apache    4u  IPv6 13936      0t0  TCP*:http (LISTEN

替换httpd.conf里默认的日志路径

[root@root conf]# sed -i "s@#CustomLoglogs/access_log common@CustomLog /app/logs/access_log common@g" httpd.conf

[root@root conf]# grep "access_logcommon" httpd.conf

CustomLog /app/logs/access_log common

#   CustomLog logs/dummy-host.example.com-access_log common

[root@root conf]#

(2)创建一个小的文件系统,用于存放上述 access_log 日志

[root@root conf]# dd if=/dev/zero of=/dev/sdc bs=8kcount=10

10+0 records in

10+0 records out

81920 bytes (82 kB) copied, 0.000383989 s, 213 MB/s

[root@root conf]# mkfs -t ext4 /dev/sdc

mke2fs 1.41.12 (17-May-2010)

/dev/sdc is not a block special device.

Proceed anyway? (y,n) y

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

16 inodes, 80 blocks

4 blocks (5.00%) reserved for the super user

First data block=1

1 block group

8192 blocks per group, 8192 fragments per group

16 inodes per group

Writing inode tables: done

Filesystem too small for a journal

Writing superblocks and filesystem accountinginformation: done

This filesystem will be automatically checked every24 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

创建日志文件

[root@root conf]# mkdir /app/logs -p

[root@root conf]# mount /dev/sdc /app/logs

mount: /dev/sdc is not a block device (maybe try`-o loop'?)

[root@root conf]# mount -o loop /dev/sdc /app/logs

(3)重启 httpd 服务,确保日志记录到了上述文件系统挂载的/app/log 下面
/etc/init.d/httpd restart

(4)写个循环脚本访问 httpd,使得 httpd 日志充满/app/logs 整个空间
for n in `seq 100000`;do curl -s 127.0.0.1 >/dev/null;done

(5)查看磁盘空间

[root@root conf]# df -h

Filesystem     Size  Used Avail Use% Mounted on

/dev/sda3      8.8G  1.5G  7.0G 18% /

tmpfs          238M     0  238M  0% /dev/shm

/dev/sda1      190M   36M  145M 20% /boot

/dev/sdc        73K   14K   55K 21% /app/logs

错误的删除方案
[root@root logs]# rm -f /app/logs/access_log
[root@root conf]# df -h

Filesystem     Size  Used Avail Use% Mounted on

/dev/sda3      8.8G  1.5G  7.0G  18%/

tmpfs          238M     0  238M  0% /dev/shm

/dev/sda1      190M   36M  145M 20% /boot

/dev/sdc        73K   67K   2K  99%/app/logs

[root@root logs]# 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)

(6)解决问题
1、 请先停掉模拟访问测试脚本
for n in `seq 100000`;do curl -s 127.0.0.1>/dev/null;done

2、重启 Http 服务
[root@root log]# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

(6)查看处理结果
[root@root log]# 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

转载于:https://blog.51cto.com/liruifeng/1844479

模拟Web 服务器磁盘满故障深入解析相关推荐

  1. 小程序web服务器是什么,【小程序】模拟web服务器

    /* 模拟web服务器 */ package com.lin.michael; import java.io.IOException; import java.net.ServerSocket; im ...

  2. 服务器芯片镜像测试,模拟镜像服务器磁盘问题的两个测试【转】

    我们知道在高安全模式下,在主服务器上提交的事务必须同时在镜像服务器上提交成功,否则该事务无法在主数据库上提交. 在上面的图中,一个事务在主数据库上提交的步骤包含: 客户端程序将事务发送给主数据库服务器 ...

  3. 在Web服务器磁盘上缓存数据和HTML页面

    有时候,有"许多"数据要在内存中缓存."许多"是相对而言的,它取决于能消耗多少内存.缓存项目的数量以及取回数据的频度.任何情况下,如果需要在内存中缓存大量的数据 ...

  4. web服务器双机热备方案解析

    (1).假设外网虚拟IP 72.249.146.214上,内网hosts设置db10对应内网虚拟IP 192.168.146.214 (2).默认情况下,由主机绑定内.外网虚拟IP,备机作为备份,当主 ...

  5. IIS 7.5 中提供的 Web 服务器 (IIS) 角色服务

    Internet 信息服务 (IIS) 7.5 是 Windows® 7 中的 Web 服务器 (IIS) 角色和 Windows Server® 2008 R2 中的 Web 服务器.Web 服务器 ...

  6. Forefront_TMG_2010-TMG发布Web服务器

    1.环境拓扑图: 2.准备DMZ区域的Web服务器: 安装Web服务器: 在DMZ区域的Web服务器进行测试: 3.TMG发布Web服务器: 打开TMG管理控制台,新建"网站发布规则&quo ...

  7. 如何在多台web服务器上共享session?

    比如:现在有三台php服务器,且实现了负载均衡,如何让这三台web服务器共享session数据? session数据默认是以文件的形式保存在web服务器的磁盘上,一般都是用户登录成功的时候,保存ses ...

  8. web-基础入门-web框架-web服务器-wsgi接口

    理解框架 框架就是把反复写反复用的东西,提练出来,组成的一个东西. 生活的情景,比如舞台的共享 开发的情景,比如,产生随机数,轮播图,分页等,需求一样,需要的时候直接调用就好.可以写成模块,用时调用. ...

  9. 开源字符处理类库:CharString类 拆分自自己研发的web服务器中的类库

    博主目前在做WEB服务器,众所周知WEB服务器最主要的是解析HTTP协议,其中最关键的是字符解析,也就是分割字符来确定每个字段所表达的意思,客户端的意愿! 此类是博主在编写WEB服务器所写出来的,专门 ...

最新文章

  1. 谈谈Android重打包--雷区
  2. 2017年云栖大会-云HBase专场会后资料-欢迎扩散
  3. mysql 的select语句_MySQLSELECT语句_MySQL
  4. Android异步机制一:使用Thread+Handler实现非UI线程更新UI界面
  5. linux i2c 设备节点读写
  6. Javadoc注释规范
  7. Java 修饰符、运算符笔记总结
  8. 【前端2】js:原始类型,运算符,调试,页面加载,轮播图,Bom(对象,时钟),Dom(全选全不选,省市级联,隔行/触摸换色,表单校验)
  9. web容器(03):Nginx配置负载均衡
  10. 在JBoss AS 7上部署BroadleafCommerce 2.0
  11. Windows 8连接*** 691错误解决办法
  12. Golang实践录:命令行cobra库实例再三优化
  13. 求一个任意实数c的算术平方根g_中考总复习实数知识点
  14. linux添加nginx启动脚本_linux环境开机自启动nginx
  15. UVA10324 Zeros and Ones【水题】
  16. C语言三种形式编九九乘法表,C语言九九乘法表(五种输出形式)
  17. 连读、变音、失音、浊化、弱读、节奏
  18. 交互体验设计优秀的产品
  19. 信息3.0 ,让机器完成熵增中的有序
  20. Ubuntu科学操作笔记---kalrry

热门文章

  1. 我在51cto微职位学软考——宝妈一次性通过高项的学习经历
  2. 利用Powershell和ceye.io实现Windows账户密码回传
  3. python学习笔记之运算符
  4. Android在listview添加checkbox实现单选多选操作问题
  5. linux下导入、导出mysql数据库命令
  6. BZOJ4298 : [ONTAK2015]Bajtocja
  7. CSS布局之品字布局
  8. Windows 2003 AD升级至Windows 2012 AD之DHCP服务器迁移
  9. VBS学习日记(二) 基础知识
  10. Object-C 入门介绍