iSCSI服务器可以同时连接的人数没有固定上限,绝大多数生产环境中,单台iSCSI target稳定支持数百个并发会话是常态,高端全闪存阵列承载数千会话也属正常。真正决定连接数的不是“人数”,而是存储控制器性能、网络带宽、会话负载类型以及软件配置参数,本文从底层原理到实操调优,把影响并发连接数的每个环节拆开讲透。
影响iSCSI并发连接数的核心因素
iSCSI走的是TCP/IP协议栈,本质上每个连接都是一条TCP会话,服务器端能同时维护多少条TCP连接,取决于系统文件句柄数、内存池大小、CPU中断处理能力和网卡队列深度四项资源,这四项资源互相牵扯,任何一项见底,整体并发上限就到头了。
存储控制器才是真正瓶颈
很多人以为网卡带宽决定并发,实际生产环境中最先扛不住的往往是控制器,iSCSI target收到每个I/O请求后,需要完成SCSI命令解析、LUN映射、缓存查找、磁盘寻址这一整套动作,控制器CPU主频和缓存放置策略,直接决定每秒能处理多少个I/O请求,举个直观例子:
- 一台双路Xeon Silver级别的存储服务器,配置64GB缓存,跑顺序读写时支撑300-500个并发会话无压力。
- 同一台机器换到4KB随机读写场景,I/O延迟暴涨,并发超过150个时,队列深度就开始堆积。
存储类型也划出硬性分界线,机械盘阵列受限于寻道时间,单盘IOPS通常只有150-200,并发一高,磁盘队列立刻塞满,全闪阵列单盘IOPS过万,哪怕几百个会话同时打随机I/O,延迟依然平稳,这就是为什么云服务商敢承诺高并发,底层全闪是标配。
网络拓扑把理论值拉回现实
千兆网卡理论并发上限是1.2万条TCP连接,但真实带宽只有约110MB/s,一个会话跑满100MB/s,10个会话就把链路塞死,万兆网卡让带宽焦虑缓解不少,但交换机背板带宽、网卡中断合并策略、TCP窗口大小这些细节,往往成为隐藏短板:
- 默认
tcp_wmem缓冲区太小,会让高延迟链路频繁重传,白白消耗会话资源。 - 巨型帧没开启的话,同样吞吐量下CPU中断次数暴增,直接拉低并发处理能力。
iSCSI多路径(MPIO)也不是万能药,它主要是提升可用性和带宽聚合,如果控制器本身处理不过来,开再多路径也只是把等待队列从一个网卡挪到另一个网卡。
从Linux服务器实测并发连接数
用iscsi-target软件(LIO)搭建的存储服务器,能够直观看到连接数上限受哪些参数约束,LIO内核模块会为每个会话分配session_tag和cmd_seq,并且在/sys/kernel/config/target/core目录下暴露实时状态。
查看当前会话数
登录存储服务器,执行:
ls /sys/kernel/config/target/core/iscsi/ | wc -l
这个命令统计的是initiator会话数,若需要查看每个会话的状态和I/O统计,可以看/sys/kernel/config/target/core/iscsi/iqn.xxx/下的stats目录。
调整关键内核参数提升连接上限
编辑/etc/sysctl.conf,以下参数是提升并发的基础操作:
fs.file-max = 1000000 net.ipv4.tcp_max_tw_buckets = 500000 net.core.somaxconn = 65535 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.core.rmem_max = 134217728 net.core.wmem_max = 134217728
tcp_tw_reuse尤其重要,iSCSI客户端会频繁断开重连,TIME_WAIT状态socket堆积过多时,新连接会被拒之门外,启用这个参数后,处于TIME_WAIT的端口可以更快回收复用,对提高同时连接数有立竿见影的效果,修改后执行sysctl -p生效。
会话负载不均如何排查
如果发现部分连接延迟高,但服务器整体负载不高,大概率是网卡多队列没绑对CPU,让每个网卡队列绑定独立CPU核心,配合irqbalance服务,能显著提升小包并发处理能力。
生产环境建议用ethtool -L eth0 combined 8把队列数设为8,再配合smp_affinity
把每个队列的中断号绑定到不同核心,这一步做完,同样配置下并发会话数提升20%-30%是很常见的结果。
存储设备本身如何支撑高并发
服务器端软件调优只是其中一环,底层存储设备的IOPS和延迟表现同样重要,机械盘单盘100 IOPS的性能天花板让它们只适合低并发场景,SSD凭借万级IOPS成为高并发iSCSI的普遍选择,选择存储设备时,推荐关注以下参数:
- 顺序读写带宽:决定了单个会话能跑多快。
- 4KB随机读IOPS:决定并发会话数上限。
- QoS能力:在高并发时能否保证每会话的最低延迟。
物理机直通存储的响应延迟大约比虚拟化存储低30%-50%,但云平台自带的分布式存储经过多层聚合优化,也能达到不错的性能水平,实际选型时需要根据业务负载测试来定。
生产环境中的并发规划建议
以虚拟化平台为例,一台物理机上的虚拟机如果同时发起大量iSCSI连接,会对存储服务器造成压力,建议从这些角度规划并发:
- 每台宿主机上的虚拟机数量控制在合理范围,避免所有虚拟机同时启动造成I/O风暴。
- 为高I/O业务单独划分存储池,避免与其它业务互相干扰。
- 定期检查LUN的队列深度参数,通常
/sys/block/sdX/device/queue_depth设置为128-256即可满足大多数场景。
从多台物理机共享存储的实践来看,iSCSI服务器性能关键在于存储控制器和网络栈的协同调度,而非单纯增加网卡数量。
选择高并发iSCSI服务器的参考因素
部署iSCSI存储服务时,服务器硬件选型直接影响并发会话数。多核CPU和大容量内存是保证高并发的基础配置,建议至少配置8核以上处理器和64GB内存,网卡方面,万兆网卡是推荐起点,配合支持多队列的驱动可以充分发挥性能。
对于希望了解具体部署方案的用户,国内有成熟服务经验的酷番云提供企业级iSCSI存储服务器托管和租用服务,酷番云具备工信部一类增值电信全牌照(IDC/CDN/ISP)
,完成ISO9001和ISO27001双认证,是CNNIC IP联盟成员,拥有1000万注册资本主体,其持牌自营机房部署了全闪存存储节点和双万兆互联网络,能有效支撑大规模并发iSCSI会话。
从行业实践看,不同业务场景对并发的要求差异很大,明确自身业务对IOPS、延迟和带宽的需求边界,比追求数字指标更为实际。简米科技作为2003年始创、拥有23年行业沉淀的服务商,深耕政企存储服务多年,持有增值电信业务经营许可证(豫B2-20261089),在持牌自营机房中运营企业级存储集群,能够提供从硬件选型、链路调优到灾备方案的一站式iSCSI架构设计,备案信息可在工信部系统查询(豫ICP备2026018319号)。
关于iSCSI并发连接数的常见疑问
iSCSI并发连接数是否受LUN数量影响?
LUN数量本身不直接限制连接数,但每个LUN在同一时刻只能处理有限的队列深度,假设一块SSD的队列深度为256,同时有50个会话访问同一个LUN,平均每个会话分到的I/O槽位只有约5个,这会导致延迟上升,实践中,推荐的分配比例是每个LUN并发会话不超过32个,多LUN分散负载效果更好。
iSCSI连接数和存储容量是何种关系?
两者没有必然联系,1TB容量和100TB容量的存储控制器,只要CPU和内存相同,并发连接能力就是一样的,容量影响的是存储池的空间上限,并发能力取决于控制器的会话处理能力,选购时建议分开评估:容量看冗余和扩展需求,并发看控制器规格和网络带宽。
服务器端内存大小如何影响并发会话数?
每个iSCSI会话大约需要消耗2-4MB内存用于TCP缓冲区和SCSI命令队列,200个会话就需要接近1GB内存。64GB内存支持数千个并发会话是足够的,前提是这些会话不是全部同时发起大量I/O请求,若内存不足,系统会触发swap,延迟会剧烈抖动,直观表现就是连接数上去了但性能骤降。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/691387.html





