问题现象:
今天配置了一台用于数据统计的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(记录集级别锁定,不在锁表),问题有所缓解罢了。
分享到:
相关推荐
llvm-toolchain_8.0.1-7_amd64-linux-gnu_debian-10.tar.gzllvm-toolchain_8.0.1-7_amd64-linux-gnu_debian-10.tar.gzllvm-toolchain_8.0.1-7_amd64-linux-gnu_debian-10.tar.gzllvm-toolchain_8.0.1-7_amd64-linux-...
llvm-toolchain_18.1.6-1_amd64-linux-gnu_debian-10.tar.gz llvm-toolchain_18.1.6-1_amd64-linux-gnu_debian-10.tar.gz llvm-toolchain_18.1.6-1_amd64-linux-gnu_debian-10.tar.gz llvm-toolchain_18.1.6-1_amd64...
Debian 参考手册(版本 2.76)(2019-03-21 15:39:20 UTC) 旨在作为一份 Debian 系统安装后的用户指南,为 Debian 系统的使用与管理提供广泛的概 览。它通过为非开发者编写的 shell 命令示例来涵盖系统管理的方方面面...
Microsoft ODBC Driver 18 for SQL Server(Linux-debian9-12)离线安装包deb 1.下载后解压,里面包含各版本的odbc驱动,安装前确认匹配当前系统cat /proc/version。 2.Debian默认使用dpkg -i xxx.deb安装,若提示缺少...
llvm-toolchain_15.0.7-1_amd64-linux-gnu_debian-10.tar.gz 龙芯LLVM 15.0.7.1 llvm-toolchain_15.0.7-1_amd64-linux-gnu_debian-10.tar.gz 龙芯LLVM 15.0.7.1 llvm-toolchain_15.0.7-1_amd64-linux-gnu_debian-...
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发行版。
Nessus-8.9.0-debian6_amd64.deb.zip 是这个软件的最新版本,专为基于Debian的系统,如Kali Linux和Debian 6设计。这个压缩包包含了Nessus的安装文件Nessus-8.9.0-debian6_amd64.deb,用于在64位的Debian系统上部署...
MongoDB Community Server(mongodb-linux-x86_64-debian10-5.0.4.tgz)适用于Debian10 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一...
Linux_(Debian)windscribe.v2.6.14的安装包_Linux-Debian-windscribe.v2.6.14
电子安装程序-debian 为您的Electron应用程序创建一个Debian软件包。 | | | | 要求 此工具需要Node 10或更高版本, fakeroot和dpkg来构建.deb软件包。 我建议在目标平台上构建软件包,但是如果您坚持使用Mac OS X...
MongoDB Community Server(mongodb-shell-linux-x86_64-debian10-5.0.4.tgz)适用于Debian10 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ...
在本案例中,我们关注的是专为企业环境设计的MongoDB 3.6.3版本,适用于Linux操作系统,特别是Debian 7.1(Wheezy)系统。 标题中的"mongodb-linux-x86_64-enterprise-debian71-3.6.3.tgz"揭示了文件的几个关键特性...
### Linux系统Debian学习文档知识点总结 #### 一、Debian系统概述 - **Debian** 是一个由全球志愿者协作开发和支持的操作系统,基于Linux内核。它以其稳定性、安全性和高质量的软件包管理而闻名。 #### 二、下载与...
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....
龙芯 llvm-toolchain_13.0.1-5_amd64-linux-gnu_debian-10.tar.gz 龙芯LLVM am64 x64 编译工具
docker-debian10-ansible:用于Ansible剧本和角色测试的Debian 10(Buster)Docker容器
- 从官方或其他可信来源下载适合 Debian 5.x 的 Linux 内核源码。 ##### 4.2 解压内核源码 - 将下载的内核源码压缩包解压到适当目录。 ##### 4.3 配置并且编译内核 - 使用 `make menuconfig` 进行内核配置。 - ...
Kali Linux VMware(kali-linux-2022.2-vmware-amd64.7z)文件分割成 3个 压缩包,...Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。预装了许多渗透测试软件,包括nmap 、Wireshark 、Sqlmap等。