diff --git a/README.md b/README.md index 30b1a54..7d4b275 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,6 @@ | [浅谈企业运营中的监控系统](monitor.md) | | [Maven使用方法与配置文件详解](maven.md) | | [GIT跨项目协作模型图](git-across-project-model.md) | -| [代收/代付系统功能说明书](cap.md) | +| [代收/代付系统功能说明书](cap.md) | +| [日志归档方案](archivelog.md) | +| [垂直拆分优化方案](optimization.md) | diff --git a/archivelog.md b/archivelog.md new file mode 100644 index 0000000..b9be5ba --- /dev/null +++ b/archivelog.md @@ -0,0 +1,20 @@ + + +# 日志归档方案 + +## 现状 + +- 每天日志移到同服务器上特定路径,服务器空间并未释放 +- 当服务器磁盘空间达到阈值后物理删除,不符合央行日志审计规范 +- 没有统一归档服务器,没有日志归集功能 + +## 目标 + +- 日志归集,登录归档服务器可查询所有日志 +- 按天归档,按年度分组 +- 日志压缩,合理利用空间 +- 业务系统日志保留一周便于查询问题 + +## 方案 + + diff --git a/optimization.md b/optimization.md new file mode 100644 index 0000000..42ed14d --- /dev/null +++ b/optimization.md @@ -0,0 +1,170 @@ + + +# 新大陆优化方案 + +## 现状 + +- 商户大量拓展,随之带来业务量上升,系统的承载能力也需提高一个量级 +- 交易系统承载的服务过多,一旦宕机会造成所有服务阻断 +- 部分系统参数设置不合理,有优化空间 + +## 目标 + +- 优化操作系统与业务平台参数 +- 按业务的维度独立拆分,使其互不干扰 +- 优化集群服务器组数量 +- 满足未来量级的业务量 + +## 物理架构(当前) + + + +## 参数调优 + +> 目的:提高当前系统的稳定性 + +- JVM参数(内存、缓存、优化参数等) + > jboss5/bin/start.sh + + ```shell + -Xms4096m -Xmx4096m -XX:MaxPermSize=512m + ``` + + +- 各接入服务的最大线程数、超时时间 + > 待分析 + +- JBoss GC设置 + +- JBoss 数据库连接设置 + > oracle-ds.xml + + ```xml + 100 + 200 + ``` + +- 文件打开数量 + > /etc/security/limits.conf + + ```shell + * soft nproc 10240 + * hard nproc 10240 + * soft nofile 65535 + * hard nofile 65535 + ``` + + > /etc/security/limits.d/90-nproc.conf + + ```shell + * soft nproc 10240 + root soft nproc unlimited + ``` + +- POS接入超时时间与最大线程数优化 + > server.xml + ```xml + + ``` + +- EPC平台优化 + > conf/sys.properties + + ```shell + ecp.plt.sys_stat=NONE + ecp.plt.log_level=INFO + ecp.plt.run_stat=NONE + ``` + +- JMS队列优化 + > p.jmssvr + + ```xml + + + + ``` + +- SQL语句优化 + > 根据DBA给出的AWR报告进行分析,优化存在性能问题的SQL + + - 流水表中所有的SQL语句加上AC_DT来强制走分区 + + ```sql + select * from t_hps_jnl where ac_dt > 'XXXXXXXX' and ac_dt < 'XXXXXXXX' + ``` + +- 交易流水增加分区 + > 交易流水需以交易日期创建分区,所有SQL需要增加分区条件 + + +- 增加系统监控 + > 梳理各种纬度的监控项并载入监控系统 + + - 磁盘空间占用率监控 + - CPU占用率监控 + - 内存占用率监控 + - JVM内存监控 + - 网络带宽监控 + - 网络端口占用率监控 + - 系统文件打开数量监控 + +- 交易增加超时时间 + > 分析各交易的超时时间 + +- 历史交易记录的迁移 + > 6个月之前的交易移植到历史库 + +## 服务拆分方案 + +> 目的:满足未来百万级业务 + +1. 增加一组Nginx做内部负载;增加一组服务器用于查询;现有交易服务器组中增加一台服务器做集群 + + - 修改后架构 + + + + - 查询服务器配置 + + 节点 | CPU | JVM | 服务 | 描述 + --- | --- | --- | --- | --- + 查询-I | 4Core | 6G | 查询服务 | 访问读库 + + 节点 | CPU | JVM | 服务 | 描述 + --- | --- | --- | --- | --- + 查询-II | 4Core | 6G | 查询服务 | 访问读库 + + +2. 拆分当前POSP服务组,并且将 20Core,32G 的物理机分成4个容器用于拆分后的服务 + + - 修改后架构 + + + + - 服务器配置 + + 节点名 | 用户名 | CPU | JVM | 服务 | 描述 + --- | --- | :---: | :---: | --- | --- + 银行卡-I | pospadm | 共享20Core | 6G | 银行卡收单、SN同步 | + POS扫码-I | qrpadm | 共享20Core | 6G | 微信、支付宝、银联 | + 服务化扫码-I | soaadm | 共享20Core | 6G | 微信、支付宝、一码付 | + 查询-I | qryadm | 共享20Core | 6G | 支付结果查询 | 预留,可以承担小部分流量,访问主库 + + + 节点名 | 用户名 | CPU | JVM | 服务 | 描述 + --- | --- | :---: | :---: | --- | --- + 银行卡-II | pospadm | 共享20Core | 6G | 银行卡收单、SN同步 | + POS扫码-II | qrpadm | 共享20Core | 6G | 微信、支付宝、银联 | + 服务化扫码-II | soaadm | 共享20Core | 6G | 微信、支付宝、一码付 | + 查询-II | qryadm | 共享20Core | 6G | 支付结果查询 | 预留,可以承担小部分流量,访问主库 + + + 节点名 | 用户名 | CPU | JVM | 服务 | 描述 + --- | ---- | :---: | :---: | --- | --- + 银行卡-III | pospadm | 共享20Core | 6G | 银行卡收单、SN同步 | + POS扫码-III | qrpadm | 共享20Core | 6G | 微信、支付宝、银联 | + 服务化扫码-III | soaadm | 共享20Core | 6G | 微信、支付宝、一码付 | + 查询-III | qryadm | 共享20Core | 6G | 支付结果查询 | 预留,可以承担小部分流量,访问主库 + +3. 部署方式:每组服务器均采用全量部署,但只会启用容器相对应的服务,配合负载设备针对不通的业务作切换策略