面试稳了

面试稳了:https://blog.csdn.net/FL63Zv9Zou86950w/article/details/104284671

https://mp.weixin.qq.com/s?__biz=MzAwNTM5Njk3Mw==&mid=2247502074&idx=1&sn=04a46ef461b8057bbf08dfd65772f44b&chksm=9b1fc878ac68416ea120bba2e8359cbe9e1b1c6ca36a2b6d3daba43ff03b8b1da3db84fa5df2&mpshare=1&scene=23&srcid=0701rTsAgurEEQw511CwoIUZ&sharer_sharetime=1625112309767&sharer_shareid=cda3fd6d851917b1a68b5e6c75210072#rd

1. 误操作 drop 导致数据库数据丢失,如何恢复?

  • (1) 首先查看备份和binlog文件

  • (2) 刷新并备份binlog文件;

mysqladmin -uroot -p123456 -S /data/mysql.sock flush-logs
  • (3) 将binlog文件恢复成sql语句,将其中误操作的语句删除(就是drop的动作)

mysqlbinlog –no-defaults mysql-bin.000061 mysql-bin.000062 >bin.sql
  • (4) 解压全备文件,恢复全备文件;

gzip -d mysql_backup_2019-11-12.sql.gz
mysql -uroot -pmysql123 -S /data/3306/mysql.sock < mysql_backup_2019-11-12.sql  # (如果有对表的操作,恢复数据时需要接表名)
  • (5)恢复误操作前的binlog文件记录的sql语句

mysql -uroot -pmysql123 -S/data/3306/mysql.sock < bin.sql
  • (6) 最后登陆数据库,查看数据是否恢复成功,如果有确定的误操作时间,就直接恢复这段时间的数据即可。

2. 网站访问速度过慢,如何排查,并且如何解决?

响应时间、

如何排查? ping 检查域名解析时间 如果出现丢包,说明线路异常 如果禁Ping,使用 tcping 测试端口

解决办法: CDN加速,如果是线路短暂的不稳定,可等待线路调整,条件允许的话,切换其他运营商线路

执行时间、

如何排查? 在网络无问题的情况下,就需要查看服务器内部资源使用情况,如CPU,内存,磁盘IOPS,带宽 解决办法: 对服务器资源进行升级

大多数情况是数据库导致反应慢,那就检查数据库和主机使用的网络是否有问题,如果是公网,最好是同机房 其次分析下慢日志,查看正在执行的查询语句是哪个耗时时间长。 解决办法: 硬件方面,升级SSD固态硬盘,软方便,建立索引,牺牲部分空间换取时间

加载时间、

如何排查? 借助浏览器 F12 开发模式,关闭缓存,观察个个加载项的时间,如果时间特别长加载不出来就有问题了 一般分为几点:

  • 网站中的坏链,404地址,会导致持续加载不出

  • 外链地址: 调用的外部网站地址,加载外链很慢导致网站整体加载慢

  • 大文件: 会直接导致访问慢。

解决办法:

    1. 定期检查网站加载项,删除修复其中的坏链,外链建议修改成程序本地调用,减少加载项数量(截图中的requests项)

    1. 压缩网站首页大小,首页越小越好,这样能同时间承受更大的访问量,访问速度也更快

    1. 提升服务器带宽

3. 磁盘空间满了,删除了一部分日志内容,可发现磁盘空间还是满的,为什么?

在Linux或者Unix系统中,如果文件被删除了,但是磁盘未释放,那说明这个文件被某一个进程使用中,所以磁盘未释放

4. 描述MySQL主从复制原理

  • 首先从库会生成两个线程(I/O线程 && SQL线程),I/O线程去请求主库的Binlog,并将Binlog日志写的 relay log(中继日志)

  • 其次主库会生成一个 log dump 线程,用来给从库 I/O 线程传Binlog

  • 最后 SQL线程会读取中继文件中的日本,并解析成具体操作,写入从库,保证主从操作一样,实现数据一致

5. Apache服务的常用工作模式及对应的特点

  • worker模式: 线程模式,占用资源少,并发大,相对稳定性差

  • prefork模式: 进程模式,占用资源多,稳定好,并发一般

6. 如何查看某个进程所打开的所有文件

lsof -c xxx进程

7. 说说常用的网络管理工具

ifconfig, ping, traceroute, dig, nslookup ,telnet

8.开机启动流程

  • 开机Blos自检,加载硬盘

  • 主引导记录,加载内核

  • 启动初始化进程,确定运行级别

  • 加载开机启动程序,进入系统登陆界面

Nginx+Php502 错误排查,例如 Php

检查FastCGI进程是否已经启动

FastCGI worker进程是否不够

# 判断接近配置文件中设置的进程数值,如果接近,表明worker进程数设置太少
netstat -anpo | grep “php-cgi” | wc -l 

FastCGI 执行时间过长

# 根据实际情况调高以下参数值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

FastCGI Buffer 不够

# nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;

Proxy Buffer 不够

# 如果你用了Proxying,调整
proxy_buffer_size   16k;
proxy_buffers 4 16k;

php脚本执行时间过长

将php-fpm.conf的 0s的 0s 改成一个时间

Last updated