运维全靠百度,面试一问不知,笔试填空全留空,还是要多刷题
总结一下最近碰到的面试问题和笔试问题
面试问题线上有遇到什么故障?
带宽资源耗尽 阿里云监控平台->iftop->ss->ps>程序->查看日志
磁盘容量不足
内存容量不足
进行rsync+sersync数据同步导致内存不足
ip冲突,导致设备连接不上服务器
selinux临时关闭,重启后,导致nginx起不来
ssl证书失效,导致小程序和app应用资源请求失败
nginx算法策略
轮询
加权轮询
ip_hash
nignx常用模块
upstream
rewrite
location
proxy_pass
mysql主从延迟问题
如果延迟比较大,就先确认以下几个因素:
1.从库硬件比主库差,导致复制延迟
2.主从复制单线程,如果主库写并发太大,来不及传送到从库就会导致延迟。更高版本的mysql可以支持多线程复制
3.慢SQL语句过多
4.网络延迟
5.master负载:主库读写压力大,导致复制延迟,架构的前端要加buffer及缓存层
6.slave负载:一般的做法是,使用多台slave来分摊读请求,再从这些slave中取一台专用的服务器只作为备份用,不进行其他任何操作.另外, 2个可以减少延迟的参数:
–slave-net-timeout=seconds 单位为秒 默认设置为 3600秒 #参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据 –master-connect-retry=seconds 单位为秒 默认设置为 60秒 #参数含义:当重新建立主从连接时,如果连接建立失败,间隔多久后重试
通常配置以上2个参数可以减少网络问题导致的主从数据同步延迟
MySQL数据库主从同步延迟解决方案
最简单的减少slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行
还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit
= 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog
innodb_flushlog也可以设置为0来提高sql的执行效率。另外就是使用比主库更好的硬件设备作为slave
笔试问题 linux类查看目录大小并按从大到小排序
du -sh * | sort -nr
获取test.txt文件的第200-300行
cat test.txt |head -n 300 | tail -n 200 sed -n '200,300p' test.txt
使用sed 把文件test.txt第20行的test替换为testdb
sed -i '20s/test/testdb' test.txt
从etho网卡中捕获ip为192.168.1.2,tcp协议,端口为80的数据包
tcpdump -i eth0 tcp port 80 and host 192.168.1.2 -w dm.cap数据库类
mysql 如何导出数据库test-db中test-table表
# mysqldump -u 用户名 -p 数据库名表名> 导出的文件名 mysqldump -u root -p test test-db test-table> test_users.sql



