树控件优化

今天在使用系统的时候,意外发现页面加载树形空间异常缓慢,慢到了10秒以上。之前将数据库中数据转换成树形结构是我写的,虽然没有对数据做缓存,依然是每次从oracle中读取并组装成树,但是不至于慢到10秒以上。

经审查发现,返回的数据信息合计三千条,数据大小尽然达到4.4MB,整个数据下载花费8秒。而等待只花了1.75秒。

整个分析说明服务器只花了1.75秒就把数据组装完成并返回到客户端,只是返回的数据量达到了4.4MB。
仔细查看返回的数据,发现同事写的返回结果中包含了太多前端不需要的字段,足足包含了60多个字段。而easyui前端其实只需要4个字段就够了。

很明显了,优化方案可以如下:
1、只返回前端需要的字段,将60个字段变成4个字段,大大缩小返回数据量;
2、由于这类数形数据基本不会变更,可以变为缓存存起来,避免每次从数据库中读取并组装。
3、使用异步数加载,每次点击只加载一个层级的数据,避免一次性加载过多数据,提高页面响应速度。

SSL服务器的url重写,导致系统登录后跳转到http协议

首先描述下我们的部署架构: 在F5-#1上配置虚拟服务器VS-#1以及负载均衡池(包含10.1.1.1、10.1.1.2),并将VS-#1 443端口的https请求解密为http请求后转发至池内服务器80端口。

用户通过浏览器访问系统的时候,是使用https访问到ssl服务器,然后ssl服务器使用url重写,将请求报文修改为http协议,并负载均衡转发到后台服务器。这样就造成一个问题:后台tomcat容易并不知道自己需要使用https,只知道自己是使用的是http。也是就说:httpservletrequest.getSchema()得到的是http,而不是https,所以这样就导致spring security的重定向到系统首页的url地址是http协议,而不是https协议。

解决方案:

让tomcat知道自己位于proxy(h5负载均衡)后面。在tomcat的sever.xml里面的connector里面生命proxy的相关信息,包括proxyName,proxyPort,schema,secure等等。参考网址:http://www.thecodingforums.com/threads/load-balancing-an-https-java-web-application-in-tomcat.145712/

proxyName=”https://www.test.com” proxyPort=”443″ scheme=”https” secure=”true”

Linux查看系统cpu个数、核心书、线程数

1、查看物理cpu个数

grep ‘physical id’ /proc/cpuinfo | sort -u

2、查看核心数量

grep ‘core id’ /proc/cpuinfo | sort -u | wc -l

3、查看线程数

grep ‘processor’ /proc/cpuinfo | sort -u | wc -l

4、查看CPU型号

dmidecode -s processor-version

网卡情况检测

在Centos7中检测网卡情况,比如是万兆网还是千兆网,以及服务器之间的传输速度可以采用如下的方式进行检测。

1、检测网卡的传输速度

先使用ifconfig查看网卡名字。

然后使用/sbin/ethtool 网卡名,查看传输速度。

speed可以看出网卡的传输速度,这里可以看出是万兆网卡;duplex需要为full,代表启用全双工模式。

2、检测服务器间传输速度

选择两台服务器,一台作为server,一台作为client。

启动服务器:

启动客户端,即开始测试带宽:

使用的指令iperf -c ip地址 -f m(显示结果为MB) -d(双向测试)

结果中4代表从服务器到客户端的吞吐量,5代表客户端到服务器端吞吐量。

Centos7 安装WordPress

首先,我不得不吐槽说真难装。搞了大半天。

按照步骤来讲主要如下:

1、安装apache(省略)

2、安装php(所有问题都是它的)

3、安装mysql(省略。参考官网:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html 非常详细)

4、安装wordpress(没啥问题。就是数据库连接不上,问题根源都是PHP的问题)

这里主要说说我遇到的问题

1、安装php

a)安装错误的版本:使用yum安装的时候,默认安装的5.X版本,后来查看了wordpress的要求,必须使用7.2以上版本。要安装7.2以上版本,请参考:https://www.cyberciti.biz/faq/how-to-install-php-7-2-on-centos-7-rhel-7/

b)安装好后,始终在apache的modules目录下没有libphp7.so

我把认为php72所有的相关包都安装了一遍,结果这个文件在php72-php包中。

安装这个包以后,连apache的php.conf都不用自己去瞎整了。它会自动生成一个conf文件。看了下内容,相当高级,就不用自己去写了。

c)上面处理完后,还是连接不上mysql。原因是php.ini默认没有启用mysqli的extension。找到/etc/php.ini,注释掉这行即可:

再执行apache重启即可。

systemctl restart httpd