服务器

运维实战案例之文件已删除但空间不释放问题解析

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-02 04:47:35
1、错误现象 运维的监控系统发来通知,报告一台服务器空间满了,登陆服务器查看,根分区确实没有空间了,如下图所示: 这里首先说明一下服务器的一些删除策略,由于Linux没有回收站功能,我们的线上服务器所有要删除的文件都会首先移动到系统/tmp目录下,然后定期清除/tmp目录下的数据。这个策略本身没有问题,但是通过检查发现这台服务器的系统分区中并没有单独划分/tmp分区,这样/tmp下的数据其实是占用了根分区的空间。既然找到了问题,那么删除/tmp目录下一些大数据即可,执行如下命令,检查/tmp下最大的三个数据文件,如下图所示: [root@localhost~ ]# du -s /tmp/*|sort -nr|head -3 69206016 /tmp/access_log 36 /tmp/hsperfdata_root 36 /tmp/hsperfdata_mapred 通过命令输出发现在/tmp目录下有个66G大小的文件access_log,这个文件应该是apache产生的访问日志文件,从日志大小来看,应该是很久没有清理apache日志文件了,基本判定是这个文件导致的根空间爆满,在确认此文件可以删除后,执行如下删除操作: [root @localhost ~]# rm /tmp/access_log 接着查看系统根分区空间是否释放,如下图所示: 从输出可以看到

运维实战案例之“Argument list too long”错误与解决方法

一笑奈何 提交于 2021-02-02 04:34:33
作为一名运维人员来说,这个错误并不陌生,在执行rm、cp、mv等命令时,如果要操作的文件数很多,可能会使用通配符批量处理大量文件,这时就可能会出现“Argument list too long”这个问题了。 1、错误现象 这是一台Mysql数据库服务器,在系统中运行了很多定时任务,今天通过crontab命令又添加了一个计划任务,退出时发生了如下报错: #crontab -e 编辑完成后,保存退出,就出现下面如下图所示错误: 2、解决思路 根据上面报错的提示信息,基本判定是磁盘空间满了,那么首先从检查服务器的磁盘空间开始,根据报错提示应首先检查/tmp磁盘空间,然后应该是根分区的磁盘空间,最好是系统其它分区的磁盘空间。 3、问题排查 通过df命令查看了这个服务器上所有磁盘分区的情况,/tmp分区空间还有很多,根分区也还有很大剩余空间,都不存在问题,最后发现是/var磁盘分区空间使用已经100%了,到这里已经定位了问题,是/var磁盘空间爆满导致的,因为crontab会在保存时写文件信息到/var目录下,由于这个磁盘没有空间了,报错也是理所当然了。 4、解决问题 接着通过“du -sh”命令检查/var目录下所有文件或目录的大小,发现/var/spool/clientmqueue目录占用了/var整个分区大小的90%,那么/var/spool

socket简易聊天室

孤人 提交于 2021-01-24 01:42:01
服务器端 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * @version 2012-7-26 下午04:04:18 **/ public class server { // 服务器端口 private static final int SERVERPORT = 54321; // 客户端连接 private static List<Socket> mClientList = new ArrayList<Socket>(); // 线程池 private ExecutorService mExecutorService; //

Visual SourceSafe 入门教学

社会主义新天地 提交于 2021-01-13 18:42:17
Visual SourceSafe 入门教学 作者:蔡焕麟 日期: Sep-4-2003 1. 简介 在软件工程的领域里,有一块叫做 SCM ( Software Configuration Management ),有人管它叫「软件建构管理」。 SCM 的传统定义是原始码的版本管理,后来则逐渐演进扩大,还包含了软件开发的一些标准和程序的制定与应用 [Summerville 2000] 。版本管理工具对目前的软件开发开环境来说相当重要,因为不管是软硬件环 境的改变、需求改变、软件本身的 bug... 等等,都会令软件不断地演进,我 们必须记录各个版本,以便随时比对版本之间的差异,或者回到( rollback to )过 去的某个版本;此外,当项目小组成员众多时,工作交接、多人修改同一个档案等情况,都有可能造成档案的版本混乱。例如一支程序本来由张三撰写,可是因为某 些原因(请假、临时支持其它项目、请别人 debug.... )暂时由李四修改,后来又 交回给张三。如果用传统的档案共享机制,每次有这种情形就要互相通知:我改好啰,请把档案从档案服务器搬回你家,万一有人忘了,可能就会造成档案版本错 乱,而东西交到客户手上才发现 bug 依然存在。 因此,如果你曾碰过下列情形,而且深感困扰,你可能就需要版本管理工具的协助: 档案不见了(用鼠标拖放档案时误动作,不知道拖去哪儿放了);

Servlet监听器

落花浮王杯 提交于 2020-12-19 09:45:29
一、监听三个域对象创建和销毁的事件监听器 1. ServletContextListener接口 创建类MyServletContextListener实现ServletContextListener public class MyServletContextListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println(arg0.getServletContext() + "被创建了"); } public void contextInitialized(ServletContextEvent arg0) { System.out.println(arg0.getServletContext() + "被销毁了"); } } 在web.xml文件中配置 <listener> <listener-class>cn.class3g.web.listener.MyServletContextListener </listener-class> </listener> 执行结果为:启动服务器时打印”被创建了“停止服务器时打印“被销毁了”; 2.HttpSessionListener接口

openfire的入门学习

百般思念 提交于 2020-11-27 02:26:39
今年开始到5月都在学习和使用openfire进行公司新的项目开发,这里正好整理一下学习笔记。 openfire是什么? Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。 安装openfire,这个网络上面教程很多,安装也很方便,只要有jre环境就ok,就不多做说明了。 openfire采用xmpp协议,底层怎么交互可以不用研究,反正就是按xml的协议进行消息的交互。xml的好处就是扩展性强,缺点应该就是冗余 公司用的java开发,这里就涉及到openfire提供的api包,在java是smack,这是一个封装了很多消息,事件的包,使开发openfire变的相当快速。 再讲解一些openfire中的一些基本概念: jid: node@domain/resource,这就相当于唯一标示 (1) 名(domain identifier);openfire服务器的名称 (2) 点(node identifier);用户的名称 (3) 源(resource identifier).资源,可以理解为可以通过多种软件连接openfire,那个软件的标示 3个基础包 Presence:出席包,用来告知服务器是上线还是下线等状态信息 用枚举类型Presence

阿里云CentOS服务器挂载数据盘

佐手、 提交于 2020-11-02 15:43:13
阿里云Linux云服务器数据盘默认是未做分区和格式化的,使用前需要先挂载数据盘。步骤如下: 1、查看数据盘 在没有分区之前,使用 df -h 命令,是无法查看到数据盘的,可以使用 fdisk -l 命令查看。 2、对数据盘进行分区 执行 fdisk /dev/xvdb 命令,对数据盘进行分区; 根据提示,依次输入“n”、“p”、“1”、两次回车,“w”,分区就开始了,很快就会完成。 3、查看新的分区 使用 fdisk -l 命令可以看到,新的分区 xvdb1 已经建立完成了。 4、格式化新分区 使用 mkfs.ext3 /dev/xvdb1 命令对新分区进行格式化,格式化的时间根据硬盘大小有所不同。 5、添加分区信息 使用 echo '/dev/xvdb1 /mnt ext3 defaults 0 0' >> /etc/fstab 命令写入新分区信息。 然后使用 cat /etc/fstab 命令查看,是否写入成功。 6、挂载新分区 使用 mount -a 命令挂载新分区,然后用 df -h 命令查看,出现 /dev/xvdb1 那一行就说明挂载成功,可以开始使用新的分区了。 来源: oschina 链接: https://my.oschina.net/u/879106/blog/93921

在Linux下用LVS和Ipvsadm做Web负载均衡

时光怂恿深爱的人放手 提交于 2020-04-17 02:40:17
【推荐阅读】微服务还能火多久?>>> 在Linux下用LVS和Ipvsadm做Web负载均衡,如果想对负载均衡有一个全面、宏观上的理解,可以看: 服务器负载均衡技术的原理及应用 。 一、简介及环境配置 在 Linux下用LVS和Ipvsadm做Web负载均衡,本例子用的操作系统是:Ubuntu;LVS是在linux操作系统基础上建立虚拟服务器,实现 服务节点之间的负载均衡。它是基于linux内核实现的,2.6.X内核默认集成了lvs模块,LVS常用负载均衡的实现是基于ip协议的,所以一般称为 IPVS。 本例子有三台Ubuntu服务器,192.168.0.111、192.168.0.197、192.168.0.198,那 么我们把192.168.0.111作为负载均衡服务器使用,那么首先需要检查下操作系统是否已经集成了LVS,可以在命令行执行:modprobe -l | grep ipvs,如果出现: kernel/net/netfilter/ipvs/ip_vs.ko kernel/net/netfilter/ipvs/ip_vs_rr.ko kernel/net/netfilter/ipvs/ip_vs_wrr.ko kernel/net/netfilter/ipvs/ip_vs_lc.ko kernel/net/netfilter/ipvs/ip_vs_wlc.ko

微博:春节日活跃用户超一亿,探秘如何实现服务器分钟级扩容

*爱你&永不变心* 提交于 2020-04-14 14:32:38
【推荐阅读】微服务还能火多久?>>> 本次由微博研发中心技术经理及高级技术专家陈飞分享了微博利用阿里云实现分钟级服务器规模成倍扩容的技术体系,包括Docker与虚机结合的使用经验、网络架构以及负载均衡、缓存架构的跨IDC服务部署的一些经验。本次视频直播的整理文章、视频、幻灯片整理完毕,如下内容。 直播视频: http://click.aliyun.com/m/6360/ 幻灯片下载地址: http://click.aliyun.com/m/6360/ DCP 设计“ 初心” 图一 DCP 设计初心 DCP是微博容器化的混合云弹性调度运维平台,其诞生初衷是以最低成本实现弹性能力。DCP系统对外提供的功能包括集群管理、服务池之间的调度。目前使用DCP系统的业务方涵盖微博的核心业务,主要包括微博平台、红包飞、手机微博等。 DCP最初的设计目标主要有三点: 要具有弹性能力,当时预估在春晚峰值时,需要10分钟16000核,25600GB的计算资源弹性能力; 能够节约成本,设计之时希望2016年春晚的总体成本不超过2015年,且通过阿里云等公有云按需付费模式,未来可大幅降低单位成本; 能提供一个标准的技术平台,拉通不同语言、运行环境差异,向微博各个业务系统提供标准的弹性能力。 DCP 混合云架构设计 图二 DCP 混合云架构设计原则 当具体去设计这样一个系统架构时,由于涉及到不同的业务方

MongoDB性能优化五个简单步骤

风流意气都作罢 提交于 2020-03-24 19:02:08
3 月,跳不动了?>>> 大家在使用MongoDB的时候有没有碰到过性能问题呢?这里总结了MongoDB性能优化的五个步骤,希望能够有所帮助。 第一步:找出慢语句 一般来说查询语句太慢和性能问题瓶颈有着直接的关系,所以可以用MongoDB的性能分析工具来找出这些慢语句: db.setProfilingLevel(1, 100); 第二步:使用explain分析 通过使用explain来对这些慢语句进行诊断。此外还可以mtools来分析日志。 第三步:创建索引 分析完之后需要创建新的索引(index)来提升查询的性能。别忘了在MondoDB中可以在 后台创建索引 以避免collections 锁和系统崩溃。 第四步:使用稀疏索引来减少空间占用 如果使用sparse documents,并重度使用关键字$exists,可以使用 sparse indexes 来减少空间占用提升查询的性能。 第五步:读写分离 如果读写都在主节点的话,从节点就一直处在空置状态,这是一种浪费。对于报表或者搜索这种读操作来说完全可以在从节点实现,因此要做的是在connection string中设置成secondarypreferred。 小结 这些方法虽然能够起一定的作用,但最主要的目的还是为架构上的提升争取点时间罢了。 来源: oschina 链接: https://my.oschina.net/u