- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 (PostgreSQL) 9.2.1 并使用 pgbench 测试数据库。
pgbench -h 192.168.39.38 -p 5433 -t 1000 -c 40 -j 8 -C -U admin testdb
当我使用-C参数(为每笔交易建立一个新的连接)时,交易总是在第16381次交易后丢失。
Connection to database "testdb" failed
could not connect to server: Can't assign requested address
Is the server running on host "192.168.39.38" and accepting
TCP/IP connections on port 5433?
Client 19 aborted in establishing connection.
Connection to database "testdb" failed
could not connect to server: Can't assign requested address
Is the server running on host "192.168.39.38" and accepting
TCP/IP connections on port 5433?
Client 19 aborted in establishing connection.
....
transaction type: TPC-B (sort of)
scaling factor: 30
query mode: simple
number of clients: 40
number of threads: 8
number of transactions per client: 1000
number of transactions actually processed: 16381/40000
tps = 1665.221801 (including connections establishing)
tps = 9487.779510 (excluding connections establishing)
并且每次测试中实际处理的交易数总是16381。但是,pgbench 可以成功,所有交易都在
-C is not used
或
the total transactions are less than 16381
删除这些事务后,数据库可以在几秒钟内继续接受连接。我想知道我是否错过了 PostgreSQL 的一些配置。
谢谢
编辑 我发现客户端被阻止连接几秒钟,但其他人仍然可以访问数据库。这是否意味着同一个客户端不能在短时间内发送太多交易?
最佳答案
我找到了它在大约 16000 次交易后失去连接的原因。 TCP wait_time 为这个错误负责。以下命令将显示 TCP 连接的状态:
$ netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
然而,它在 MAC OS X 中不显示 TIME_WAIT。因此我错过了它。通过以下命令调整 TCP wait_time 后,pgbench 可以正常工作。
$ sudo sysctl -w net.inet.tcp.msl=1500
net.inet.tcp.msl: 15000 -> 1500
感谢您的帮助。
关于sql - pgbench 处理大量事务后数据库暂时断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13597251/
我正在使用 (PostgreSQL) 9.2.1 并使用 pgbench 测试数据库。 pgbench -h 192.168.39.38 -p 5433 -t 1000 -c 40 -j 8 -C -
我需要用 java(Windows) 编写一个应用程序,该应用程序将使用 -P 参数运行 pgbench 命令并从控制台读取输出。 我编写了.bat文件“windowsPostgr.bat”: set
我正在尝试编写自定义 pgbench 脚本来对我正在设置的新 postgres 集群进行基准测试。官方文档使它看起来很简单,但是看起来如果定义的变量缺少尾随空格(或其他一些未记录的字符),则并不总是被
我正在 Digital Ocean 的 8gb Ram/4 CPUs/80gb SSD 云服务器上测试 PostgreSQL。我最初使用 postgresql.conf 中的默认设置运行 PgBenc
请帮我澄清一下,pgbench 工具是否可以并行执行我自己的 sql 场景?谷歌搜索和本地搜索没有带来积极的结果。 我运行的脚本没有错误。但是在执行之后我没有看到任何迹象表明我的脚本实际上已经被执行了
如何为 postgresql 9.3 安装 pgbench? 我基本上已经在 centos 64 位上设置了我的 postgresql9.3,它运行良好。完全没问题。 然后我在我的 centos 机器
我是一名优秀的程序员,十分优秀!