麒麟操作系统在处理高并发场景下的性能优化有哪些策略?

如何通过调整内核参数来优化网络I/O性能的。

参与9

4 同行回答

Ciao Ciao 联盟成员 架构师 某证券公司
高并发优化策略方法论与传统linux操作系统类似,都是从硬件、系统参数、网络、存储、应用这几个方面考虑。硬件优化 :垂直扩展 :提升单机处理能力,如增加CPU核数、升级更好的网卡(如万兆网卡)、升级更好的硬盘(如SSD)并扩充硬盘容量、扩充系统内存等。水平扩展:通过增加服务器数量...显示全部

高并发优化策略方法论与传统linux操作系统类似,都是从硬件、系统参数、网络、存储、应用这几个方面考虑。
硬件优化 :
垂直扩展 :提升单机处理能力,如增加CPU核数、升级更好的网卡(如万兆网卡)、升级更好的硬盘(如SSD)并扩充硬盘容量、扩充系统内存等。
水平扩展:通过增加服务器数量来线性扩充系统性能。这可以使用负载均衡器来分发请求到多个服务器上。
系统配置优化 :
文件句柄限制 :Linux内核为每个进程都有一个文件描述符(file descriptor)数组。在高并发场景下,进程所需的文件描述符数量会增加。可以通过 ulimit -n 命令来调整文件句柄限制。
进程数量限制 :在高并发场景下,进程数量可能会增加。可以通过修改 /etc/security/limits.conf 文件来调整进程数量限制。
TCP/IP参数优化:对于TCP/IP连接,可以调整相关的内核参数来提高性能,如 net.ipv4.tcp_synack_retries 、 net.ipv4.tcp_max_syn_backlog 等。
I/O调度器 :选择合适的I/O调度器(如NOOP、DEADLINE、CFQ、BFQ等)以适应不同的工作负载。
网络优化 :
负载均衡 :使用负载均衡器来分发请求到多个服务器上,以实现水平扩展。
连接池 :使用连接池来复用TCP连接,减少连接建立和断开的开销。
压缩传输 :使用压缩算法(如gzip、brotli等)来压缩传输的数据,减少网络带宽的使用。
应用程序优化:
使用事件驱动(如select/poll/epoll/kqueue等)的非阻塞IO模型或操作系统级别的异步IO接口(如posix的aio系列函数)来减少线程数目和上下文切换的开销,同时能够处理大量并发连接。

收起
证券 · 2024-04-30
浏览583
三虎 三虎 联盟成员 系统运维工程师 中国邮政储蓄银行
处理高并发场景,还是需要具体区分高并发下,对主机哪些资源消耗过高,再进行有针对性的调优:1、高并发造成网络IO压力,如果每个TCP连接本身消耗服务端的内存过高,则大量并发场景下,可能会导致内存资源过度消耗,而无法处理新的请求,则需要扩容内存,这里推荐《信创操作系统层面tcp短时...显示全部

处理高并发场景,还是需要具体区分高并发下,对主机哪些资源消耗过高,再进行有针对性的调优:
1、高并发造成网络IO压力,如果每个TCP连接本身消耗服务端的内存过高,则大量并发场景下,可能会导致内存资源过度消耗,而无法处理新的请求,则需要扩容内存,这里推荐《信创操作系统层面tcp短时高并发短连接应当如何调优?》帖子中的回复;
2、高并发带来的CPU资源不足,如果每个请求所需要的计算资源较多,推荐《信创操作系统层面提供的CPU性能应当如何优化?》帖子中的回复内容;
3、高并发带来的磁盘IO负载过高,如瞬时的批量写入读出等,这种连续的大IO操作,建议调大磁盘预读块大小,在操作系统层没有太多太好的手段,可以考虑在存储侧增加不同层级的缓存大小,如增加控制器缓存或增加SSD缓存空间等来提高整体IO性能;
4、如果高并发对后端数据库造成压力,需要从数据库读写SQL上做文章,确认是否有全表扫描等情况发生,业务处理逻辑是否有优化空间;
5、另外高并发可以考虑做业务限流,如设定排队或熔断机制,保证已接入的请求能正常处置。

收起
银行 · 2024-04-05
浏览681
waring_id waring_id 技术经理 某公司
更多情况下应该先聚焦提升设备驱动的兼容性和相关的性能。例如网卡和多核之间的优化,网卡 MTU 和交换机的优化(10G或25G网络是否启用 MTU9000)等显示全部

更多情况下应该先聚焦提升设备驱动的兼容性和相关的性能。例如网卡和多核之间的优化,网卡 MTU 和交换机的优化(10G或25G网络是否启用 MTU9000)等

收起
零售/批发 · 2024-04-01
浏览654
howardlee0509 howardlee0509 联盟成员 项目经理 金融公司
麒麟操作系统在处理高并发场景下可以采取多种性能优化策略,包括但不限于:调整内核参数: 优化系统的TCP/IP参数、文件描述符限制、内存管理等参数,以适应高并发场景的需求。使用多线程/多进程: 利用多线程或多进程并发处理请求,提高系统的并发处理能力。使用异步IO: 使用异步IO技...显示全部

麒麟操作系统在处理高并发场景下可以采取多种性能优化策略,包括但不限于:

  1. 调整内核参数: 优化系统的TCP/IP参数、文件描述符限制、内存管理等参数,以适应高并发场景的需求。
  2. 使用多线程/多进程: 利用多线程或多进程并发处理请求,提高系统的并发处理能力。
  3. 使用异步IO: 使用异步IO技术,如epoll或者IO多路复用,提高IO效率,减少线程阻塞等待IO的时间。
  4. 优化数据库访问: 合理设计数据库表结构、索引,优化查询语句,提高数据库读写性能。
  5. 使用缓存: 使用缓存技术,如Redis或Memcached,减少对数据库的频繁访问,降低数据库负载。
  6. 负载均衡: 使用负载均衡技术将请求分发到多台服务器上,分担服务器负载,提高系统的并发处理能力。
  7. 水平扩展: 在系统设计阶段考虑水平扩展的方案,通过增加服务器节点来提高系统的整体性能。
  8. 定期性能监控和调优: 定期监控系统的性能指标,发现性能瓶颈并进行调优,保持系统在高并发场景下的稳定性和性能。
    这些策略可以根据具体的应用场景和需求进行灵活选择和组合,以达到优化系统性能的目的。
收起
证券 · 2024-03-22
浏览717

ChatGPT 回答

针对银行行业的高并发场景,可以通过调整麒麟操作系统的内核参数来优化网络I/O性能,具体步骤如下:

  1. 调整TCP参数

在高并发场景下,TCP连接的建立和维护会对系统性能产生较大的影响。可以通过调整TCP参数来优化TCP连接的性能,例如:

  • 调整TCP连接的超时时间,可以减少连接超时的情况,提高连接成功率。
  • 调整TCP连接的最大队列长度,可以避免连接请求过多导致系统资源耗尽的情况。
  • 调整TCP窗口大小,可以提高数据传输的效率。
  1. 调整网络设备参数

网络设备的性能也会对系统的网络I/O性能产生影响。可以通过调整网络设备的参数来优化网络I/O性能,例如:

  • 调整网卡缓冲区大小,可以提高数据传输的效率。
  • 调整网卡中断处理方式,可以减少中断处理的开销,提高系统的并发性能。
  1. 调整文件系统参数

在高并发场景下,文件系统的性能也会对系统的网络I/O性能产生影响。可以通过调整文件系统的参数来优化网络I/O性能,例如:

  • 调整文件系统的缓存策略,可以减少磁盘I/O的次数,提高系统的性能。
  • 调整文件系统的最大文件打开数,可以避免系统资源耗尽的情况。

总之,通过调整麒麟操作系统的内核参数,可以优化网络I/O性能,提高系统的并发性能和稳定性,从而更好地满足银行行业高并发场景下的需求。

提问者

menglunyang
系统工程师 中国银行
擅长领域: 云计算容器容器云
评论93

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2024-03-11
  • 关注会员:5 人
  • 问题浏览:1484
  • 最近回答:2024-04-30
  • X社区推广