zoukankan      html  css  js  c++  java
  • 通达OA系统故障解决案例记录

    案例1:

    现象:在人员访问量大的时候OA系统经卡死,并且经常宕机,需要启动apache服务

    优化配置如下:

    D:MYOAconfhttp.conf

    修改参数如下:

    <IfModule mpm_winnt.c>

    EnableMMAP Off

    EnableSendfile Off

    ThreadsPerChild 170

    MaxRequestsPerChild  0

    Win32DisableAcceptEx

    </IfModule>


    案例2:

    现象:OA系统访问速度慢,重启apache服务后几分钟内访问正常,几分钟以后系统访问速度严重变慢,无法处理流程。

     

    可能出现问题的地方:

    1.硬件:更换服务器后几分钟后问题依旧

    2.操作系统:更换机器排除操作系统问题

    3.软件:

    系统本身:可能是大量语句没有mysql_close(),连接过多数据库资源耗尽,修改了TCP/IP的响应时间(修改注册表)问题依旧

    4.网络:

    ①局域网访问依然慢,在本机访问也是同样的问题,排除网速问题

    ②发现360流量统计上传下载不到10K,正常情况下应该在1M左右,程序、流量被堵死

    ③公司访问主要分为两大类:

    A.通过互联网访问OA域名

    B.部分研发区通过proxy代理访问系统,禁用proxy访问后问题依旧

     

    手工在程序目录里面点的时候,发现d:myoa mp目录很难打开,里面有大量的session文件,超过10W个,初步判断是由于系统产生session文件过多导致用户和系统交互时速度受到影响

    关于session资料如下:

    首先 gc是什么?
    gc, 是garbage collection 的简称.这个进程一般都跟着每起一个SESSION而开始运行的.gc目的是为了在session文件过期以后自动销毁删除这些文件. 大家应该猜到三个参数的大致用处了吧?
    1、session_gc_probaility
    PHP默认不是每个SESSION启动都会启动一个GC来跟踪。这个参数是控制gc跟session启动概率。默认 1。值越大,概率越大。

    2、session.gc_divisor
    功能同上。 默认100。值越小,概率越大。

    3、session.gc_maxlifetime 
    超过设定时间,gc就认为是垃圾文件。

     

    修改session回收机制最长的存活时间为10分钟

    session.gc_maxlifetime = 600(默认为36000秒10个小时)

    session_gc_probaility=5 (默认为1,修改为5增加回收垃圾文件的概率)

    结论:

    对程序开发不了解,很早就发现tmp文件夹产生了大量文件,手动访问tmp目录很卡,此种情况也同样适用程序,PHP程序在访问tmp(session)文件时也是会影响效率(每一个用户访问系统都需要遍历10W个session文件效率低下)


    案例3

    现象:十一假期结束后,系统访问异常缓慢,导致大部分人不能办公

    分析:月初是员工处理考勤数据高峰期,之前的考勤都是在平时分开处理,十一假期后处理考勤电子流出现扎堆的现象

     

    解决问题的步骤:

    1.排除系统设置问题

    2.排除网络带宽、操作系统、硬件问题

    发现禁用proxy的地址访问后故障消失

    解决办法:

    人工分流,将之前的web端给proxy用户访问,增加一台web端给开房去员工使用

    通达OA技术人员给的web和数据库分离的方法:

    再添加一个用户
    1)两台计算机都按装oa系统 
    2)启用数据库的计算机,在这台计算机上登录oa系统,系统管理 -> 数据库管理 -> MySQL用户管理 添加一个用户:主机为启用office_anywhere的计算机ip地址,用户名:比如myroot 密码:比如mypass 
    3)启用office_anywhere服务的计算机配置D:MYOAwebrootincoa_config.php 
    设置其参数为 
    $MYSQL_SERVER="数据库所在计算机的ip:3336"; 
    $MYSQL_USER="myroot"; 
    $MYSQL_PASS="mypass"; 
    4)启用office_anywhere服务的计算机停掉Mysq5_oa,启用Mysq5_oa的计算机停掉office_anywhere服务 
    以上操作,实现数据库与apache分离

     

    具体步骤:

    1.在准备增加web端的服务器上将之前的web端拷贝过来(假设IP为192.168.31.37)

    2.添加一个限制IP(保证数据库安全)的用户root2用户,密码myoa888,并赋予数据库的所有权限(包括增、删、改、查)

    也可以用工具Navicat添加



    3.修改D:MYOAwebrootinc目录下“oa_config.php”文件

    //-- MYOA数据库配置 --

    $MYSQL_SERVER="192.168.1.235:3336";

    $MYSQL_USER="root2";

    $MYSQL_DB="TD_OA";

    $MYSQL_PASS="myoa888";


  • 相关阅读:
    ubuntu 14.04搭建PHP项目基本流程
    linux下 lvm 磁盘扩容
    LVM基本介绍与常用命令
    Linux LVM逻辑卷配置过程详解
    mysql 5.7中的用户权限分配相关解读!
    linux系统维护时的一些小技巧,包括系统挂载新磁盘的方法!可收藏!
    linux系统内存爆满的解决办法!~
    源、更新源时容易出现的问题解决方法
    NV显卡Ubuntu14.04更新软件导致登录死循环,不过可以进入tty模式
    一些要注意的地方
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239891.html
Copyright © 2011-2022 走看看