linux

Centos 7升级内核5.x

当前环境查看 uname -r 3.10.0-514.el7.x86_64 安装新版本内核 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml -y 查看当前已安装内核 查看已安装版本 rpm -qa | grep kernel kernel-3.10.0-1062.18.1.el7.x86_64 kernel-tools-libs-3.10.0-1062.18.1.el7.x86_64 kernel-tools-3.10.0-1062.18.1.el7.x86_64 kernel-ml-devel-5.5.13-1.el7.elrepo.x86_64 kernel-3.10.0-957.el7.x86_64 kernel-headers-3.10.0-1062.18.1.el7.x86_64 kernel-ml-5.5.13-1.el7.elrepo.x86_64 卸载安装的内核 rpm -e kernel-ml-devel-5.5.13-1.el7.elrepo.x86_64 rpm -e kernel-ml-5.5.13-1.el7.elrepo.x86_64 查看启动项目 ...

php并发优化

服务器配置 8核e5-2630L 2.4ghz, 16g内存 20MB带宽 问题场景描述 jemter 300并发开始出现502错误 CPU利用率60% 内存利用率50% 网络流量1MB到1.5MB 分析 cpu和内存利用率不高,网络也没有耗尽。肯定是卡在IO上了。 netstat查看TIME_WAIT,数量正常 opcache查看,已开启,没问题 详细查看压测错误,发现压测过程中出现"SQL Error 1040: Too Many Connection"。既然超过连接数,那就查看限制多少连接吧。 mysql参数 max_connections = 2000; # 2000连接,没毛病,问题不在这 到底有多少连接。一看也是惊呆了,大量的sleep连接没有释放。好了这就是原因了。 解决 系统内同时使用了laravel orm,和pdo对象。系统二开,为了方便增加了laravel orm。 那就看看是谁没关闭连接吧。 去掉所有laraval orm的数据库操作,去掉laravel orm连接创建方法。运行测试,发现还是会保留大量sleep mysql connection 去翻pdo创建代码 // 目测就是这个ATTR_PERSISTENT => true了 $this->connection = new \PDO...
执行时间: 29.540061950684 毫秒