问题现象:
今天配置了一台用于数据统计的linux服务器,访问量在200万以上,开始以前配置顺利,域名生效,访问统计链接,出现 DateBase Err: 1040: Too many connections
解决过程
第一反应,修改MYSQL 的参数 max_connections=4087
运行了不到2分钟,服务器平均负载狂飙到>400 瞬间当机,显而易见,连接数加大给服务器带来了巨大压力,可是407的连接数并不算多。
apache 配置有问题?
mysql 配置有问题?
查了一边又一遍。。。
原来问题出在PCONNECT
PCONNECT是不会在查询完成后就关闭,而是会等待一定时间,这个时间可以由MYSQL上的wait_timeout设定
而且mysql_close并无法关闭pconnect所开启的连线,只能关闭connect所开启的资料库连线。当然如果没有CLOSE在经过TIMEOUT时间之后也是会被DB DROP掉。
PCONNECT必须要小心使用,在写的不好的CODE中,会残留一大批的DATABASE CONNECTION。
最大值可以这样计算每台SERVER的APACHE行程数 * 所有WEB SERVEWR数量,每个连线都会消耗DB的CPU TIME与MEMORY
PCONNECT是傻瓜式的模拟连接池的方法,系统负载会疯狂上升。
解决方法:
修改php.ini参数为
[MySQL]
; 允许或阻止持久连接.
mysql.allow_persistent = Off
修改my.cnf参数为
max_connections = 600 (建议600~1000 一般大于apahce的MaxClients )
wait_timeout = 5
最后上效果图:
两天后:
问题完全解决,关键还是程序员的SQL语句存在问题,昨天程序员优化SQL语句后mysql进程中已经不再出现死锁的问题
之前将一个数据表的类型从myisam(表级别锁定,导致资源无法释放,知道内存消耗殆尽,当机)改成了innodb(记录集级别锁定,不在锁表),问题有所缓解罢了。
分享到:
相关推荐
Debian 参考手册(版本 2.76)(2019-03-21 15:39:20 UTC) 旨在作为一份 Debian 系统安装后的用户指南,为 Debian 系统的使用与管理提供广泛的概 览。它通过为非开发者编写的 shell 命令示例来涵盖系统管理的方方面面...
Debian 10(Buster)Ansible测试映像 Debian 10(Buster)Docker容器,用于Ansible剧本和角色测试。标签latest :Ansible的最新稳定版本,带有Python3.x。如何建造每当重建上游OS容器,进行提交或将其合并到master...
Kali Linux VMware(kali-linux-2022.2-vmware-i386.7z)文件分割成 3个 压缩包,必须集齐3个 文件后才能一起解压一起使用: Kali Linux VMware(kali-linux-2022.2-vmware-...Kali Linux是基于Debian的Linux发行版。
MongoDB Community Server(mongodb-linux-x86_64-debian10-5.0.4.tgz)适用于Debian10 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一...
Microsoft ODBC Driver 18 for SQL Server(Linux-debian9-12)离线安装包deb 1.下载后解压,里面包含各版本的odbc驱动,安装前确认匹配当前系统cat /proc/version。 2.Debian默认使用dpkg -i xxx.deb安装,若提示缺少...
lib /固件/ amdgpu 修复W: Possible missing firmware /lib/... 希望您的问题现在得到解决。 当前可用的固件 banksbanks_k_2_smc bonaire carrizo fiji green_sardine hainan kabini kaveri mullins navi10 navi12 na
code::blocks_17.12-1_amd64_stable for debian/(Ununtu)
Compiled with: gcc (Debian 8.3.0-6) 8.3.0 Compiler flags: -O2 -g -Wall -Wextra -pedantic -Wno-cast-function-type -ffunction-sections -fdata-sections Linked against: wxWidgets: 3.2.1 SQLite: 3.39....
mongodb-linux-x86_64-debian92-4.2.0.tgz
Nessus-8.0.1-debian6_amd64.deb . Kali linux
docker-debian10-ansible:用于Ansible剧本和角色测试的Debian 10(Buster)Docker容器
Kali Linux VMware(kali-linux-2022.2-vmware-amd64.7z)文件分割成 3个 压缩包,...Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。预装了许多渗透测试软件,包括nmap 、Wireshark 、Sqlmap等。
linux-mainline-and-mali-allwinner-h6-kernel:linux-mainline-and-mali-allwinner-h3-h6-kernel
MongoDB Community Server(mongodb-linux-x86_64-debian11-5.0.8.tgz)适用于Debian 11, MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是...
Kali Linux VMware(kali-linux-2022.2-vmware-amd64.7z)文件分割成 3个 压缩包,...Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。预装了许多渗透测试软件,包括nmap 、Wireshark 、Sqlmap等。
Kali Linux VMware(kali-linux-2022.2-vmware-amd64.7z)文件分割成 3个 压缩包,...Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。预装了许多渗透测试软件,包括nmap 、Wireshark 、Sqlmap等。
在Debian Linux发行版上练习系统配置。 概括 创建虚拟机 Linux-Debian中的配置将在VirtualBox中创建的虚拟机上执行。 为虚拟机选择的操作系统是Debian(32位版本),它是从Linux内核派生的发行版。 为虚拟机定义的...
电子安装程序-debian 为您的Electron应用程序创建一个Debian软件包。 | | | | 要求 此工具需要Node 10或更高版本, fakeroot和dpkg来构建.deb软件包。 我建议在目标平台上构建软件包,但是如果您坚持使用Mac OS X...
适用于Debian Linux 10 (x86, 64-bit) 压缩包内容: mysql-community-server_8.0.25-1debian10_amd64.deb、 mysql-community-server-core_8.0.25-1debian10_amd64.deb、 mysql-community-server-core-dbgsym_8.0.25-...
这是最新版的Nessus,支持kali、debian类系统,安装方法,可以参考https://blog.csdn.net/u012318074/article/details/72354387