加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Linux运维常见问题及解决的32个锦囊妙计

发布时间:2018-09-19 14:46:49 所属栏目:Windows 来源:C语言
导读:副标题#e# 9月15日技术沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖探讨精准运维! 作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯。每一次技术的突破,都经

(2) 原因:

  • 端口被占用:表面看是7080端口被占用,于是netstat-npl|grep7080看了下发现7080没有占用;
  • 在配置文件中重复写了端口,如果在以下两个文件同时写了Listen7080
    1. /etc/httpd/conf/http.conf 
    2. /etc/httpd/conf.d/t.10086.cn.conf 

(3) 解决:

注释掉/etc/httpd/conf.d/t.10086.cn.conf的Listen7080,重启,OK。

9. toomanyopenfile

(1) 问题:

报toomanyopenfile错误

(2) 解决:

终极解决方案

  1. echo“”>>/etc/security/limits.conf 
  2. echo“*softnproc65535″>>/etc/security/limits.conf 
  3. echo“*hardnproc65535″>>/etc/security/limits.conf 
  4. echo“*softnofile65535″>>/etc/security/limits.conf 
  5. echo“*hardnofile65535″>>/etc/security/limits.conf 
  6. echo“”>>/root/.bash_profile 
  7. echo“ulimit-n65535″>>/root/.bash_profile 
  8. echo“ulimit-u65535″>>/root/.bash_profile 

最后重启机器或者执行:

  1. ulimit-u655345&&ulimit-n65535 

10. ibdata1和mysql-bin致磁盘空间问题

(1) 问题:

2.51磁盘空间报警,经查发现ibdata1和mysql-bin日志占用空间太多(其中ibdata1超过120G,mysql-bin超过80G)

(2) 原因:

bdata1是存储格式,在INNODB类型数据状态下,ibdata1用来存储文件的数据和索引,而库名的文件夹里的那些表文件只是结构而已。

innodb存储引擎有两种表空间的管理方式,分别是:

  • 共享表空间(可拆分为多个小的表空间文件),这个是我们目前多数数据库使用的方法;
  • 独立表空间,每一个表有一个独立的表空间(磁盘文件)

对于两种管理方式,各有优劣,具体如下:

① 共享表空间:

优点:可以将表空间分成多个文件存放到不同的磁盘上(表空间文件大小不受表大小的限制,一个表可以分布在不同步的文件上)

缺点:

  • 所有数据和索引存放在一个文件中,则随着数据的增加,将会有一个很大的文件,虽然可以把一个大文件分成多个小文件,但是多个表及索引在表空间中混合存储,这样如果对于一个表做了大量删除操作后表空间中将有大量空隙。
  • 对于共享表空间管理的方式下,一旦表空间被分配,就不能再回缩了。当出现临时建索引或是创建一个临时表的操作表空间扩大后,就是删除相关的表也没办法回缩那部分空间了。

②独立表空间:

在配置文件(my.cnf)中设置:

  1. innodb_file_per_table 

特点:每个表都有自已独立的表空间;每个表的数据和索引都会存在自已的表空间中。

优点:表空间对应的磁盘空间可以被收回(Droptable操作自动回收表空间,如果对于删除大量数据后的表可以通过:altertabletbl_nameengine=innodb;回缩不用的空间。

缺点:

  • 如果单表增加过大,如超过100G,性能也会受到影响。在这种情况下,如果使用共享表空间可以把文件分开,但有同样有一个问题,如果访问的范围过大同样会访问多个文件,一样会比较慢。
  • 如果使用独立表空间,可以考虑使用分区表的方法,在一定程度上缓解问题。此外,当启用独立表空间模式时,需要合理调整innodb_open_files参数的设置。

(3) 解决:

①ibdata1数据太大:只能通过dump,导出建库的sql语句,再重建的方法。

②mysql-binLog太大:

手动删除:

  • 删除某个日志:
    1. mysql>PURGEMASTERLOGSTO‘mysql-bin.010′; 
  • 删除某天前的日志:
    1. mysql>PURGEMASTERLOGSBEFORE’2010-12-2213:00:00′; 

在/etc/my.cnf里设置只保存N天的bin-log日志

expire_logs_days=30//BinaryLog自动删除的天数

二、故障排查汇总表

Linux运维常见问题及解决的32个锦囊妙计

【编辑推荐】

  1. 「实用工具」介绍几款Windows系统与Linux服务器传递文件的工具
  2. Linux用户应该换到BSD的6个理由
  3. Linux中sudo,su与su命令的区别
  4. 有同也有异,对比BAT的运维文化
  5. 查看一个归档或压缩文件的内容而无需解压它
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读