max_connections的问题

发布于 2022-09-18 02:55:27 字数 9926 浏览 18 评论 0

从字面上看这个数字应该是对于连接数的最大限制。现在我们测试使用400用户,200并发,就导致了出错。程序运行了大概有15分钟左右就down掉了。变现为tracker进程直接死掉。怎么启都启动不了。ps-e查不到tracker这个进程。
web程序的log4日志为:
级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,265 | 线程:[3464] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,250 | 线程:[3208] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,265 | 线程:[2696] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,296 | 线程:[6092] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,218 | 线程:[4188] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,218 | 线程:[5412] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,281 | 线程:[5860] | 级别:INFO  | 对象:test_upload_aspx | 信息: 上传文件的时间为:0.09375秒!
2009-09-04 09:34:10,359 | 线程:[2028] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,359 | 线程:[8024] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,296 | 线程:[3184] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,359 | 线程:[4196] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
2009-09-04 09:34:10,359 | 线程:[4044] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,281 | 线程:[6376] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:无法将数据写入传输连接: 远程主机强迫关闭了一个现有的连接。。
2009-09-04 09:34:10,281 | 线程:[6320] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,265 | 线程:[6656] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,218 | 线程:[5376] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,203 | 线程:[2172] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,000 | 线程:[660] | 级别:INFO  | 对象:test_upload_aspx | 信息: 上传文件的大小为:308958字节!
2009-09-04 09:34:10,359 | 线程:[7128] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,359 | 线程:[660] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,218 | 线程:[5708] | 级别:INFO  | 对象:test_upload_aspx | 信息: 上传文件的大小为:308958字节!
2009-09-04 09:34:10,281 | 线程:[3800] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,234 | 线程:[1872] | 级别:INFO  | 对象:test_upload_aspx | 信息: 上传文件的大小为:308958字节!
2009-09-04 09:34:10,218 | 线程:[4372] | 级别:INFO  | 对象:test_upload_aspx | 信息: 上传文件的大小为:308958字节!
2009-09-04 09:34:10,343 | 线程:[5432] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:无法将数据写入传输连接: 远程主机强迫关闭了一个现有的连接。。
2009-09-04 09:34:10,359 | 线程:[5708] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:无法从传输连接中读取数据: 您的主机中的软件放弃了一个已建立的连接。。
2009-09-04 09:34:10,359 | 线程:[7064] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
2009-09-04 09:34:10,359 | 线程:[1872] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:10,375 | 线程:[4372] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:Recv package size -1 != 10
2009-09-04 09:34:11,203 | 线程:[4684] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:由于目标机器积极拒绝,无法连接。 192.168.130.20:22122
2009-09-04 09:34:11,203 | 线程:[4508] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:由于目标机器积极拒绝,无法连接。 192.168.130.20:22122
2009-09-04 09:34:11,203 | 线程:[5348] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:由于目标机器积极拒绝,无法连接。 192.168.130.20:22122
2009-09-04 09:34:11,203 | 线程:[6556] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:由于目标机器积极拒绝,无法连接。 192.168.130.20:22122
2009-09-04 09:34:11,203 | 线程:[5888] | 级别:INFO  | 对象:test_upload_aspx | 信息: 测试文件上传速度时发生异常:由于目标机器积极拒绝,无法连接。 192.168.130.20:22122

storage的日子为:

ad.c, line: 162, connect to tracker server 192.168.130.20:22122 fail, errno: 111, error info: Connection refused
[1999-11-28 11:49:29] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.130.20:22122, continuous fail count: 1
[1999-11-28 12:23:49] CRIT - file: fdfs_storaged.c, line: 260, catch signal 15, program exiting...
[1999-11-28 12:28:51] INFO - FastDFS v1.19, base_path=/data/fastdfsfiles/storage, store_path_count=1, subdir_count_per_path=256, group_name=group1, network_timeout=60s, port=23000, bind_addr=, max_connections=256, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=100ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time: 23:59, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=60s, check_file_duplicate=0, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0
[1999-11-28 12:28:51] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.130.20:22122
[1999-11-28 12:28:51] ERROR - file: storage_sync.c, line: 1679, connect to storage server 192.168.130.20:23000 fail, errno: 111, error info: Connection refused

[1999-11-28 11:48:29] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.130.20:22122
[1999-11-28 11:48:59] ERROR - file: tracker_client_thread.c, line: 162, connect to tracker server 192.168.130.20:22122 fail, errno: 111, error info: Connection refused
[1999-11-28 11:49:29] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.130.20:22122, continuous fail count: 1
[1999-11-28 12:23:49] CRIT - file: fdfs_storaged.c, line: 260, catch signal 15, program exiting...
[1999-11-28 12:28:51] INFO - FastDFS v1.19, base_path=/data/fastdfsfiles/storage, store_path_count=1, subdir_count_per_path=256, group_name=group1, network_timeout=60s, port=23000, bind_addr=, max_connections=256, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=100ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time: 23:59, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=60s, check_file_duplicate=0, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0
[1999-11-28 12:28:51] INFO - file: tracker_client_thread.c, line: 191, successfully connect to tracker server 192.168.130.20:22122
[1999-11-28 12:28:51] ERROR - file: storage_sync.c, line: 1679, connect to storage server 192.168.130.20:23000 fail, errno: 111, error info: Connection refused
[1999-11-29 00:29:51] ERROR - file: tracker_client_thread.c, line: 687, tracker server 192.168.130.20:22122, recv data fail, errno: 107, error info: Transport endpoint is not connected.
[1999-11-29 00:29:52] ERROR - file: tracker_client_thread.c, line: 162, connect to tracker server 192.168.130.20:22122 fail, errno: 111, error info: Connection refused

初步怀疑是最大连接数的限制,更改最大连接数为1000,512,400等等都无法启动服务。日志为
tracker:

[2009-09-04 13:22:35] INFO - FastDFS v1.19, base_path=/data/fastdfsfiles/tracker, network_timeout=60s, port=22122, bind_addr=, max_connections=400, store_lookup=0, store_group=, store_server=1, store_path=0, reserved_storage_space=4096MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s
[2009-09-04 13:22:35] ERROR - file: ../common/shared_func.c, line: 1635, create thread failed, startup threads: 303, errno: 12, error info: Cannot allocate memory
[2009-09-04 13:26:21] INFO - FastDFS v1.19, base_path=/data/fastdfsfiles/tracker, network_timeout=60s, port=22122, bind_addr=, max_connections=256, store_lookup=0, store_group=, store_server=1, store_path=0, reserved_storage_space=4096MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s

storage的日志为:
[2009-09-04 12:57:05] INFO - FastDFS v1.19, base_path=/data/fastdfsfiles/storage, store_path_count=1, subdir_count_per_path=256, group_name=group1, network_timeout=60s, port=23000, bind_addr=, max_connections=1000, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=100ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time: 23:59, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=60s, check_file_duplicate=0, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0
[2009-09-04 12:57:05] ERROR - file: ../common/shared_func.c, line: 1635, create thread failed, startup threads: 301, errno: 12, error info: Cannot allocate memory

后改为max——contection改为256启动又正常了。

请解释一下原因,并告知一下解决方法。

后改为300用户,100用户并发,运行53分钟后又出现类似问题。追踪器进程down掉,存储器进程还在,程序无法连接。

[ 本帖最后由 user5173 于 2009-9-4 15:41 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

对风讲故事 2022-09-25 02:55:27

>>后改为max——contection改为256启动又正常了。
>>请解释一下原因,并告知一下解决方法。

32位系统内存空间不能超过4G的问题导致。64位系统上应该不存在这个问题。
可以将线程的栈大小改小一些,这样支持的线程数可以大一些。详情可以参见帖子:
http://linux.chinaunix.net/bbs/thread-1127610-1-2.html

过气美图社 2022-09-25 02:55:27

>> 后改为300用户,100用户并发,运行53分钟后又出现类似问题。追踪器进程down掉,存储器进程还在,程序无法连接。

有可能是进程的地址空间超过了系统上限,我碰到的上限大概在3.5GB左右。
你可以用ps来看一下进程占用的地址空间情况。

你可以将线程数改为200试试程序还会不会挂。如果程序还会down,可以升级到V1.20再进行测试。V1.20中tracker server的几个计数器是线程安全的了。以前的版本在高并发情况下,有可能会因为计数器溢出导致程序挂掉。

心在旅行 2022-09-25 02:55:27

就是在启动的时候将tracker 的配置文件中的max-connection更改为300以上的数(只更改过400,500,800),然后用启动命令启动程序,但是程序启动不起来,就会报[2009-09-04 12:57:05] ERROR - file: ../common/shared_func.c, line: 1635, create thread failed, startup threads: 301, errno: 12, error info: Cannot allocate memory,这个内存不能被分配错误;然后更改为256的时候再次使用启动命令启动程序不会报错,又能启动了。

转角预定愛 2022-09-25 02:55:27

星期一我先更新到1.2测试一下,希望有用吧!介意是否可以加入一个守护进程,这样服务更稳定一点。
还有一个问题,为什么是tracker 先down呢?按照使用的网络带宽和io瓶颈,storage应该是先down掉才对啊?这个有点不明白!!!
至于你说的200用户,估计不是很现实,我们的需求差不多是300用户,100并发。这样是我们的最低要求了,已经无法再小了。

[ 本帖最后由 user5173 于 2009-9-6 18:55 编辑 ]

感情洁癖 2022-09-25 02:55:27

最新版本不是V1.2,是V1.20,请不要搞混淆了。
max_connections是配置最大并发连接数。

32位系统内存空间不能超过4G的问题导致。64位系统上应该不存在这个问题。
可以将线程的栈大小改小一些,这样支持的线程数可以大一些。详情可以参见帖子:
http://linux.chinaunix.net/bbs/thread-1127610-1-2.html
你可以把线程栈设置为2MB,这样支持的最大线程数达到512应该没有问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文