标签: max-connections

42
推荐指数
2
解决办法
5万
查看次数

psql:致命:抱歉,已经有太多的客户了

在尝试访问使用 postgresql 数据库的网站时,甚至在使用 psql 实用程序或 pgadmin3 时,我突然收到此错误。

我的数据库设置为处理 150 个最大连接数:

# SHOW max_connections;
 max_connections 
-----------------
 150
(1 row)
Run Code Online (Sandbox Code Playgroud)

重新启动我的网站所在的 ubuntu 服务器(这实际上是唯一使用连接的东西)后,我看到当前的连接量为 140:

# select count(*) from pg_stat_activity;
 count 
-------
   140
(1 row)
Run Code Online (Sandbox Code Playgroud)

我不明白在重新启动服务器后突然有这么多连接。所以我检查了 postgresql 活动:

# SELECT * FROM pg_stat_activity;
Run Code Online (Sandbox Code Playgroud)

我看到 100 多列具有相同的精确查询,如下所示:

SELECT  "reports".* FROM "reports"  WHERE (("reports"."time" < '2014-06-28 13:30:42.000000' AND "reports"."unit_id" = 3192)) ORDER BY "reports"."id" DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

更重要的是它们都具有相同的客户端地址(我的 Web 服务器)。

该 Web 服务器使用 ruby​​ on rails,连接池为 50。即使连接池为 50,Passenger 进程/prefork apache 配置是单线程的,因此每个进程不能产生 50 个线程和 50 个数据库连接。更重要的是,这是在系统重新启动后发生的,这将所有用户都从我的 …

postgresql max-connections

26
推荐指数
2
解决办法
11万
查看次数

最大用户连接数

在 SQL Server 2012 标准版中,我知道最大用户连接数是 32,767。如果我正朝着这个数字前进,作为 DBA 我应该怎么做?

目前有 30,000 个用户连接,这个数字预计还会增加。

在此处输入图片说明

sql-server max-connections sql-server-2012 connections

25
推荐指数
2
解决办法
6万
查看次数

什么限制了连接数?

根据https://devcenter.heroku.com/articles/heroku-postgres-legacy-plans,连接限制为 500

根据https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server “通常,良好硬件上的 PostgreSQL 可以支持几百个连接”

这个限制的决定因素是什么?#CPU核心?内存?操作系统?

postgresql linux max-connections unix

22
推荐指数
1
解决办法
4万
查看次数

如何摆脱“最大用户连接数”错误?

我正在将 MySQLi 用于我的网络应用程序,但是每当我想访问某个特定页面时,我都会得到mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connections.

我已经尝试关闭所有连接,但这并没有改善情况。

有没有办法确切知道在任何特定时刻打开了哪些连接或任何其他可以帮助我解决此问题的有用数据?

顺便说一句,我使用的是 PHP 5.2.17 和 MySQL 5.1。

mysql mysql-5 max-connections php mysql-5.1

17
推荐指数
1
解决办法
14万
查看次数

什么是有效锭数

PostgresSQL wiki建议寻找最佳数据库连接池大小的规则。

数量 = ((core_count * 2) + effective_spindle_count)

但它没有解释有效主轴数是多少以及如何找到该值。

postgresql max-connections

13
推荐指数
1
解决办法
7735
查看次数

查看每个用户的活动 MySQL 连接

我需要一个查询,它可以为某个用户提供与某个数据库的活动或打开的连接数。我一直在寻找几个小时,到目前为止一无所获。我很接近,所以这是我尝试过的。

  1. SHOW STATUS WHERE `variable_name` = 'Threads_connected';

  2. SHOW STATUS LIKE '%onn%';

  3. SELECT * FROM information_schema.processlist WHERE USER='database_user';

我在一家网络托管公司工作,我们的一个客户一直在达到他的max_user_connections极限,所以在解决为什么我需要知道他的用户现在使用了多少连接时,因为他不是共享服务器。我目前使用 MySQL (InnoDB) 版本 5.5.36。任何帮助将不胜感激!

mysql max-connections mysql-5.5 users

11
推荐指数
2
解决办法
3万
查看次数

如何理解连接池推荐 ((2 * n_cores) + n_disks) 与支持 100s 连接之间的 PostgreSQL 差异?

来自 PostgreSQL 文档:

对我来说——不是一个有经验的 DBA——这里的某个地方存在差异,特别是查看一些 DB 即服务提供商的产品。

例如,此时 Amazon RDS 最大的机器 (db.r3.8xlarge) 有 32 个 vCPU,根据第一个公式,如果有很多磁盘,它可能会在池中有 100 个连接的情况下以最佳方式运行。使用第二个公式中的“几百个连接”,它会不会运行得很糟糕?

更极端的是另一家 DBaaS 提供商的差异,他们提出了一个具有 500 个并发连接的 2 核服务器。这怎么可能运作良好?

如果我误解了什么,请告诉我。非常感谢!

postgresql max-connections connection-pooling

9
推荐指数
1
解决办法
2222
查看次数

什么原因可能导致 AWS RDS 连接激增

这是我第一次在 AWS 上使用 RDS,我使用 t2.medium 实例运行 MySQL Aurora 和默认配置。CPU 使用率和 DB 连接是很正常的,直到“某事”发生,这导致 DB 连接一直达到最大值(t2.medium 为 80 个连接)。

在此处输入图片说明

我只有一个 Web 应用程序,在 EC2 实例上运行。当数据库连接数达到最大值时,EC2 实例的 CPU 使用率绝对正常(25-30%),但所有尝试连接到数据库实例的结果都是“连接过多”。

在此处输入图片说明

我当时还检查了数据库实例的 CPU 利用率 - 它没有显示高负载信号。在罢工期间,CPU 利用率下降到 20% 并始终保持该比率。

在此处输入图片说明

我不明白的事情:数据库连接已达到最大值,但为什么数据库 CPU 利用率下降了?由于这些连接中的查询计算,它不应该也处于最大值吗?

请帮助我理解,非常感谢。

(当第二次罢工发生时,我不得不将 RDS 实例的大小调整为 r4.large;我现在仍在运行它,直到我发现问题......)

mysql max-connections high-availability connections

9
推荐指数
2
解决办法
1万
查看次数

FATAL 53300:剩余连接槽保留用于非复制超级用户连接

我有一个在远程托管 VM 服务器 (Windows Server 2019) 上运行的 PostgreSQL 12.1 数据库系统(我将其称为 PGSQL)。几个月前我们升级了服务器操作系统和 PGSQL。从那时起,一切都或多或少地正常运行,直到今天早上,我开始在几乎每个连接到此 PGSQL 实例的内部应用程序中收到上述数据库错误。

为了检查连接,我运行了SELECT * FROM pg_stat_activity;,它返回了 103 行。我的postgresql.conf文件有max_connections = 100,所以这是有道理的,但没有意义的是,在这 103 个连接中,其中 90 多个连接被idle列为DISCARD ALL. 所有这些都显示为由同一非超级用户帐户从服务器自己的内部地址执行。但是,一些连接显示query_start一个月或更长时间前的日期值。

现在,不幸的是,我们现有的许多应用程序都是使用硬编码凭据构建的(我对继承的这些应用程序的代码有很多“清理”工作要做),并且通常是从指向的快捷方式执行的到托管 PGSQL 数据库的服务器上的“应用程序”共享,因此所有这些看起来都不是特别“可疑”。我试图简单地终止使用前一个查询中的值SELECT pg_cancel_backend(<pid>);之一的进程pid,但重新查询pg_stat_activity仍然在结果集中显示相同的记录(据我所知,所有值似乎完全相同)。

也许我没有使用正确的函数来终止这些“挂起”的进程或其他东西,但我无法弄清楚如何单独清除这些连接。因为我需要让我们的生产环境恢复到可用状态,所以我最终只是停止并重新启动服务器上的 PGSQL 服务,这确实清除了所有旧的DISCARD ALL语句,但我很好奇是否可以采取一些措施来防止这种积压的“挂”报表日后出现。

我的问题是,我怎样才能防止这种情况再次发生?需要注意的一件事是,在将 PGSQL 服务器升级到 v12.1 之前,我们运行了 v9.4 多年,并且从未遇到过此问题。我想知道是否有较新版本的 PGSQL 固有的问题,或者甚至可能是在 Windows Server 2019 环境中运行 PGSQL 的问题导致了此行为。


编辑

为了参考和整理,以下信息来自评论:

我没有任何服务器端用于管理连接池(我在有关PgBouncer的其他问题中看到了一些参考资料,但还没有机会查看它是否对我们的环境有帮助)。我的大多数应用程序都通过Npgsql …

postgresql max-connections postgresql-12

8
推荐指数
1
解决办法
2万
查看次数