Linux网络与MySQL优化:代理日志、连接跟踪与主从切换

需积分: 35 69 下载量 69 浏览量 更新于2024-08-09 收藏 8.71MB PDF 举报
该资源主要涉及的是Linux运维相关的知识,特别是与网络服务、日志管理、数据库管理和故障恢复紧密相关的内容。在面试中,这些技能是衡量一个IT专业人员技术水平的重要标准。 1. **Nginx代理日志记录**: Nginx作为反向代理服务器,如果希望在日志中记录客户端真实IP而非代理服务器的IP,可以在Nginx配置文件中使用`proxy_set_header`指令设置`X-Real-IP`头,将客户端IP传递给后端服务器,例如: ```nginx proxy_set_header X-Real-IP $remote_addr; ``` 这样,日志中的IP将是客户端的IP地址。 2. **iptables和conntrack问题**: 当出现`KERNEL: NF_CONNTRACK: TABLEFULL, DROPPING PACKET.`错误时,表明连接跟踪表已满,无法处理更多连接。解决方法包括: - 扩大`ip_conntrack_max`的值,这可以通过修改`/proc/sys/net/netfilter/nf_conntrack_max`或永久性调整内核参数来实现。 - 检查并清理不必要的连接跟踪条目,以释放空间。 - 调整其他相关参数,如`ip_conntrack_buckets`和`ip_conntrack_hashsize`。 3. **Linux系统下PHP-FPM进程高**: PHP-FPM进程高可能是由于请求量过大、资源限制、内存泄漏或PHP脚本问题导致。解决策略包括: - 调整PHP-FPM配置,如增加子进程数,优化资源分配。 - 检查并优化消耗资源的PHP脚本。 - 监控系统资源使用情况,找出瓶颈。 4. **MySQL主从复制故障切换**: 在主库宕机时,需要选择一个新的主库,并进行以下步骤: - 确保所有relay log已读取。 - 设置新的主库并配置相关参数。 - 使用`RESET MASTER`命令清空主库状态。 - 创建用于同步的用户。 - 将其他从库的主库地址更改为新选主。 5. **误操作恢复**: 如果因`DROP`语句导致数据丢失,可尝试以下方法恢复: - 如果有备份,恢复最新备份。 - 利用`binlog`文件回溯操作,使用工具如`mysqlbinlog`进行恢复。 - 使用专门的数据恢复软件或服务。 6. **网站打开慢的问题排查**: 当网站因访问数据库慢而变慢时,应: - 使用`sar`和`vmstat`监控系统资源,查找CPU、内存或IO问题。 - 检查磁盘IO,优化存储性能。 - 检查网络状况,确认是否网络延迟或丢包造成的问题。 - 调整MySQL参数,如`max_connect_errors`、`connect_timeout`等,以提升数据库性能。 这些知识点都是Linux运维工程师日常工作中常见的问题,掌握这些技能对于保证系统稳定性和高可用性至关重要。在面试中,能够展示对这些问题的理解和解决能力,可以大大提升面试者的专业形象。