归纳与演绎运用
归纳和演绎是科学研究中运用得较为广泛的逻辑思维方法。马克思主义认识论认为,一切科学研究都必须运用到归纳和演绎的逻辑思维方法。
- 归纳法:白猫吃鱼,黑猫吃鱼,所以猫吃鱼
- 演绎法:猫吃鱼(大前提或论据),小A是猫(小前提或事实),所以小A吃鱼
故,合理运用归纳与演绎完全有助于我们解决故障。
归纳法处理故障范例
演绎法处理故障范例
归纳法运用时,需要确保大前提准确无误的,同时,还要通过调查得到小前提。
Odoo 运行速度很慢?
问题描述:客户反馈 1核1G 的服务器刚使用 Odoo 镜像的时候还能够运行,当安装一个网站模块之后 Odoo 的速度就变得非常慢了。
推理过程:
- 大前提:如果网络没有问题,计算资源不足是导致应用系统慢的根本原因
- 小前提:Odoo 计算资源严重不足(调研数据:Odoo 服务器网络带宽大,磁盘剩余空间达90%,CPU 被占用 80% 以上,可用内存仅 4.5M)
- 结论:Odoo 一定运行很慢
解决方案:增加内存至 2 G
客户又问:为何内存不足就会导致应用系统缓慢呢?
内存不足时,操作系统就会频将数据在物理内存与虚拟内存中频繁交换,通俗的表达即操作系统会将内存中正在计算的数据(非最迫切的)复制到硬盘,腾出内存空间让内存做更迫切的计算。当内存的数据都很重要很迫切需要处理,那么内存就没有剩余空间应付外来任何访问请求,计算机就瘫痪了。 有点类似金融行业的挤兑现象。
Odoo 服务器有一个 kswapd0 进程占用大量 23.8% 的 CPU,kswapd0 就是操作系统中物理内存与虚拟内存的交换调度程序。
MySQL 数据表拒绝更新?
问题描述:访问任何页面,会报错 *UPDATE command denied to user 'hdm0660298'@'120.26.227.117' for table 'joelctgs_ecms_news' update **_ecms_news set onclick=onclick+1 where id='125529' limit 1。报错的信息转换成通俗描述即 joelctgs_ecms_news 无法更新
推理过程:
- 大前提:权限不足或存储空间不足会导致 MySQL 无法更新
- 小前提:joelctgs_ecms_news 空间不足(经过调查发现 joelctgs_ecms_news 中存在 14 万条行,而此表是存放新闻的,显然企业不可能有这么多新闻)
- 结论:joelctgs_ecms_news 无法更新
解决方案:给 joelctgs_ecms_news 表瘦身
WordPress 访问很慢?
问题描述:经常有客户反馈 WordPress 访问很慢,然后用户也通过搜索引擎寻找一些方案,例如:安装缓存插件、去掉Google字体等,但仍然无法解决问题。 问题分析:首先我们要非常明确一个大前提“WordPress 本身的性能非常好,它并不慢”。如果怀疑 WordPress 性能本身不佳,那就等于给自己设置了一个无法绕开的前提。
实际 WordPress 经验表明,有三个会导致 Web 应用程序缓慢的论 据:
- Web 应用程序总体访问时间分为:后台程序计算+前端静态页面下载渲染
- 后台程序约束:CPU和内存(包含虚拟内存)计算能力,有无缓存
- 前端页面约束:【客户端-静态资源】的网络带宽大小、网络可达性,客户端电脑性能
以论据为立足点,寻找与论据有关的事实需要有的放矢的提问(或调研方向)
后台约束调研方向
- 内存、硬盘和CPU原本多少?剩余多少?
- WordPress 安装了多少个插件?
- 数据库与WordPress 在同一个服务器吗?
- 使用了RDS吗?
- WordPress 网站的数据库大约多大?
- 每小时大约有多少个人访问网站?
- 部署在 Linux 还是 Windows 服务器中?
- 是否存在木马?
前端约束调研方向
- 服务器带宽多大?
- 本地 ping 服务器通吗?
- WordPress 上传了多少张图片?
- 每张图片大约多少?
- 客户端电脑打开淘宝的速度如何?
- 使用的是哪个浏览器?
- 网站是否提供文件下载服务?
- 提供浏览器分析器中【网络】部分的截图?了解有哪些耗时较长的资源,有哪些站外资源
LAMP 环境连续刷新出现403错误?
问题描述:客户在 LAMP 上部署了自己的业务系统。当网站刷新频繁时,出现 403 错误,禁止访问。
有用的论据:
- 服务器被动的接收 DDoS 恶意攻击会导致 403
- 服务器的DoS防御策略发生作用时会导致 403
问题分析:经过了解,论据 2 是符合客户当前的实际情况的。因此,我们要调研客户是否有 DoS防御策略。经过排查,发现客户启用了 Apache 的 mod_evasive 模块,而且设置非常严格。
解决方案:修正 Apache 的 mod_evasive 模块的策略设置。