前言

在比对rgw的不同前端的区别的时候,官方说civetweb是通过线程池来控制连接的,beast是后面加入了流控相关的,这块一直也没有调整过相关的参数,然后通过ab压测了一下,还是有很明显的区别的

测试很简单,虚拟机下面就可以完成

测试过程

rgw_thread_pool_size = 512

默认参数为这个

[root@lab201 ~]# ps -ef|grep radosgw
root 242156 239377 0 11:42 pts/1 00:00:02 tailf /var/log/ceph/ceph-client.radosgw1.log
ceph 247068 1 3 11:53 ? 00:00:00 /usr/bin/radosgw -f --cluster ceph --name client.radosgw1 --setuser ceph --setgroup ceph
root 247654 234613 0 11:53 pts/0 00:00:00 grep --color=auto radosgw
[root@lab201 ~]# cat /proc/247068/status|grep Thread
Threads: 579

启动rgw进程后可以去查看这个进程的线程数目,基本接近设置值的,还有一些其它需要用的线程

我们往s3接口里面传输一个很小的文件 260 bytes的文件,让这个文件可以公共访问,然后使用ab去并发连接这个文件,这里不是去看整个集群的负载多大,而是看下在相同的环境情况下,参数的改变会有什么区别

ab测试

ab -c 1000 -n 50000 http://192.168.0.201:7481/test/index.txt

1000个并发请求50000次

测试输出

Percentage of the requests served within a certain time (ms)
50% 180
66% 186
75% 193
80% 198
90% 214
95% 1182
98% 1205
99% 2019
100% 7589 (longest request)

我们调整rgw_thread_pool_size = 128再测试一轮

基本无法完成测试

[root@lab204 ~]# ab -c 1000 -n 50000 http://192.168.0.201:7481/test/index.txt
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.0.201 (be patient)
Completed 5000 requests
Completed 10000 requests
apr_socket_recv: Connection reset by peer (104)
Total of 14351 requests completed

我们再加大参数配置rgw_thread_pool_size = 1024

[root@lab204 ~]# ab -c 1000 -n 50000 http://192.168.0.201:7481/test/index.txt
Percentage of the requests served within a certain time (ms)
50% 281
66% 286
75% 290
80% 293
90% 299
95% 305
98% 310
99% 313
100% 1309 (longest request)

可以看到与512线程的时候明显的有所改善了

基于以上可以看到,线程如果设置小了,而外部的请求的并发连接大了,可能出现服务不响应的情况,而适当的加大线程数,也能一定程度上改善请求的效果,上面的测试仅测试验证参数的影响,而实际落地到真实环境,还需要慢慢调整

luminous版本的beast也是需要调整上面的线程池的参数来应对超多连接的情况的,否则客户端很容易就异常了

客户端并发请求最大值调整

[root@lab204 ~]# ab -c 3000 -n 50000 http://192.168.0.201:7481/test/index.txt
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.0.201 (be patient)
socket: Too many open files (24)

默认的为1024,需要调整下参数

[root@lab204 ~]# ulimit -n 4096

调整后就可以加大并发请求了

变更记录

Why Who When
创建 武汉-运维-磨渣 2020-09-11

rgw的rgw_thread_pool_size配置调整的更多相关文章

  1. Flume中的flume-env.sh和log4j.properties配置调整建议(图文详解)

    GC是内存的回收的意思. Flume中的flume-env.sh配置调整建议 [hadoop@master conf_HostInterceptor]$ pwd /home/hadoop/app/fl ...

  2. 第15.2节 PyCharm支持Python解释器的配置调整

    上节介绍了PyCharm的安装与简单使用,本节介绍PyCharm相关的配置调整,以支持在PyCharm环境下集成Python解释器进行程序的编译. 一. 工程配置调整 在执行文件前,可能需要对PyCh ...

  3. Ceph RGW 和 niginx 配置要点

    cat /etc/nginx/sites-enabled/rgw.conf server { listen 80 default; #server_name .com .com.cn .net .cn ...

  4. 009.KVM配置调整

    一 内存CPU调整 1.1 增大虚拟机内存 [root@kvm-host ~]# virsh shutdown vm01-centos6.8 [root@kvm-host ~]# virsh edit ...

  5. 虚拟机(Vmware)安装ubuntu18.04和配置调整(二)

    二.配置修改 1.修改语言环境(settings->Region & Language) 选中中文简体(Chinese(simplified)),点击Apply 中文简体语言安装完成后, ...

  6. MySQL 5.6初始配置调整

    原文链接: What to tune in MySQL 5.6 after installation原文日期: 2013年09月17日翻译日期: 2014年06月01日翻译人员: 铁锚 随着 大量默认 ...

  7. jupyter notebook 初步使用配置调整

    jupyter notebook 官方说明 初始部分: 如何打开特定的笔记本? 以下代码应在当前运行的笔记本服务器中打开给定的笔记本,必要时启动一个. jupyter notebook noteboo ...

  8. Smokeping配置调整

    smokeping两种邮件报警方式 一 .自带sendmail报警 修改这两句话to = 收件邮箱,多个逗号分隔from = smokealert@本机IP /usr/local/smokeping/ ...

  9. ceph 007 双向池同步 rgw对象网关配置 s3对象存储

    增量导入导出要基于快照 导出的过程当中害怕镜像被修改所以打快照.快照的数据是不会变化的 镜像级别的双向同步 镜像主到备,备到主.一对一 就算是池模式的双向同步,镜像也具有主备关系 双向同步,池模式 [ ...

随机推荐

  1. spring boot: filter/interceptor/aop在获取request/method参数上的区别(spring boot 2.3.1)

    一,filter/interceptor/aop在获取参数上有什么区别? 1,filter可以修改HttpServletRequest的参数(doFilter方法的功能), interceptor/a ...

  2. ffmpeg实现视频转gif及gif缩放(ffmpeg4.2.2)

    一,为什么选择ffmpeg处理gif? 1,ffmpeg可以从视频中截取gif 2,ffmpeg在缩放gif时出错的机率较低, 而imagemagick在缩放gif时容易出错 我们在后面的例子中可以看 ...

  3. centos8平台使用ulimit做系统资源限制

    一,ulimit的用途 1, ulimit 用于shell启动进程所占用的资源,可用于修改系统资源限制 2, 使用ulimit -a 可以查看当前系统的所有限制值 使用ulimit -n <可以 ...

  4. PHP SPL标准库-数据结构

    SPL是用于解决典型问题的一组接口与类的集合. 双向链表 SplDoublyLinkedList SplStack SplQueue 双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储 ...

  5. FDDB人脸检测数据集 生成ROC曲线

    看了好多博客,踩了很多坑,终于把FDDB数据集的ROC曲线绘制出来了.记录一下. 环境:ubuntu18.04 1.数据集准备 去FDDB官网:http://vis-www.cs.umass.edu/ ...

  6. day71:drf:API接口&Restful API规范&Django Rest Framework&drf中的序列化和反序列化功能

    目录 1.web应用模式 2.API接口 3.Restful API规范 4.序列化 5.Django Rest Framework 1.drf的简单介绍 2.drf的特点 3.如何安装drf 4.d ...

  7. Jmeter入门(3)- Jmeter录制脚本

    一. 录制web端 1. Badboy的介绍和安装 1.1 使用第三方工具Badboy来录制. 免费的web自动化测试工具 一个浏览器模拟工具 主要进行脚本的录制和回访,和对录制脚本进行调试,可以将脚 ...

  8. Pytest配置文件声明自定义用例标识

    使用pytest.ini添加自定义用例标识: [pytest] # 1.使用没有注册过的标记抛出错误 addopts = --strict-markers # 2.自定义标记 markers = sm ...

  9. sql优化整理(一)

    sql的编写语法是这样的: SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN < ...

  10. dubbo配置加载优先级

    优先级从高到低: JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口: XML 次之,如果在 XML 中有配置,则 dubbo.properties ...