服务器磁盘占满 df和du查看的容量不一样
df和du查看磁盘占用量不一致
可能是有些文件被删除了但是仍被进程占用
lsof|grep delete
查看哪些文件被占用
找到占用这些文件的进程,重启
恢复
xargs 的使用坑
ssh root@172.26.117.243 ps aux|grep kol.|awk '{print $2}'|xargs kill
直接在服务器上执行 后面那句shell是可以的,但是通过ssh来执行就是不行,原来是xargs 还要重新连接一次
ssh root@172.26.117.243 ps aux|grep kol.|awk '{print $2}'|ssh root@172.26.117.243 xargs kill -9
NINGX 跨域问题
以为对nginx轻车熟路了,还是翻了车。
配置跨域的时候,add_headers 等常规配置加了,前端js请求时报错提示多配置了一次。这种情况一般是负载均衡时多台nginx服务器都配置了add_headers的参数,于是就去掉。去掉之后发现提示跨域。
后面才发现,还需要配置上针对options请求头的返回值。否则会有问题。
记一次Linux IO 问题排查
问题:
mysql出现报警
[Note] InnoDB: page_cleaner: 1000ms intended loop took 6573ms. The settings might not be optimal
因为是跑数据的机器,数据量更新较大。查看mysql慢日志,出现insert update等操作的慢sql,基本确定是由于数据更新和插入频繁引起的io性能问题。
优化了一些mysql参数之后,并没有减少错误报警。
将mysqlbinlog输出到文本里分析一段时间内执行的语句,发现每分钟可能多达上千条sql更新。但是发现一个问题,有时候sql更新次数虽然多但并没有造成报警。
怀疑IO问题并不是mysql引起的。
pidstat -d 1 1000
每秒输出系统的IO状态,发现redis-server隔一段时间就会产生大量的io,高达每秒上百兆,导致机器io满载。
修改redis的硬盘持久化方案,由rdb修改为aof,io问题暂未再发现。
有个坑,修改持久化方案会造成原缓存丢失