Dear Michał,
Thanks for your reply.
```
Here are measures I've done on Dockers' nodes at Debian 11 & Debian 12:
- cluster_nodes.config at both:
{[rabbit@node71,rabbit@node72,rabbit@node73],[rabbit@node71,rabbit@node72,rabbit@node73]}.
* debian 11:
real 0m0.865s
user 0m0.639s
sys 0m0.316s
* debian 12:
real 0m2.107s
user 0m0.996s
sys 0m1.820s
- time rabbitmqctl add_user test ""
* debian 11:
real 0m0.731s
user 0m0.669s
sys 0m0.307s
* debian 12:
real 0m2.048s
user 0m1.039s
sys 0m1.777s
- time rabbitmqctl delete_user test
* debian 11:
real 0m0.688s
user 0m0.595s
sys 0m0.321s
* debian 12:
real 0m1.886s
user 0m1.017s
sys 0m1.663s
- strace -c -fF rabbitmqctl add_user test ""
* debian 11:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ------------------
33.98 2.729548 12295 222 12 futex
22.42 1.800657 871 2066 epoll_wait
15.16 1.217550 43483 28 13 wait4
12.99 1.043667 1991 524 ppoll
9.06 0.727985 18 40323 sched_yield
1.88 0.151032 28 5375 2560 read
0.90 0.072205 17 4069 timerfd_settime
0.74 0.059196 27 2148 275 stat
0.69 0.055423 16 3350 3343 readlink
0.64 0.051208 19 2587 write
0.30 0.024025 25 950 486 access
0.20 0.016157 22 726 mprotect
0.17 0.013748 26 516 125 openat
0.12 0.009404 19 481 fstat
0.11 0.008947 15 562 2 close
0.11 0.008693 15 578 mmap
0.08 0.006115 27 222 getdents64
0.05 0.004316 44 98 readv
0.05 0.003754 33 111 munmap
...
* debian 12:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ------------------
96.83 902.998464 3935 229429 37 futex
1.43 13.299093 13767 966 epoll_wait
0.77 7.215386 257692 28 13 wait4
0.69 6.443136 12809 503 ppoll
0.19 1.796681 33 53919 sched_yield
0.03 0.275410 88 3128 1449 read
0.01 0.076077 28 2644 279 newfstatat
0.01 0.070517 20 3403 3396 readlink
0.01 0.059843 46 1278 mprotect
0.00 0.046381 24 1889 timerfd_settime
0.00 0.045602 30 1476 write
0.00 0.027480 24 1122 mmap
0.00 0.025041 18 1371 rt_sigprocmask
0.00 0.023368 80 289 clone
0.00 0.021320 39 537 149 openat
0.00 0.020311 21 951 487 access
0.00 0.014257 145 98 readv
0.00 0.013161 14 890 brk
0.00 0.012923 81 158 munmap
...
As for previous benchmarks there are 57 users were added via the following Ansible's task:
- name: "[RabbitMQ:config_users] Create users"
rabbitmq_user:
user: "{{ item.name | mandatory }}"
password: "{{ item.password | default(omit) }}"
update_password: "{{ item.update_password | default(omit) }}"
vhost: "{{ item.vhost | default(omit) }}"
read_priv: "{{ item.read_priv | default(omit) }}"
write_priv: "{{ item.write_priv | default(omit) }}"
configure_priv: "{{ item.configure_priv | default(omit) }}"
permissions: "{{ item.permissions | default(omit) }}"
tags: "{{ item.tags | default(omit) }}"
node: "{{ rabbitmq_node_name | default(omit,true) }}"
no_log: "{{ rabbitmq_no_log }}"
with_items:
- "{{ rabbitmq_users }}"
delegate_to: "{{ rabbit_update_host }}"
run_once: true
tags: config, config_users
with e.g.:
rabbitmq_users:
# admins
- name: admin1
vhost: /
configure_priv: .*
read_priv: .*
write_priv: .*
tags: admin
# users
- name: user1
permissions:
- vhost: /
configure_priv: .*
read_priv: .*
write_priv: .*
- vhost: vhost1
configure_priv: .*
read_priv: .*
write_priv: .*
- vhost: vhost2
configure_priv: .*
read_priv: .*
write_priv: .*
tags: user
```
Ansible's community.rabbitmq.rabbitmq_user module operates by executing rabbitmqctl binary and to keep user's idempotence it first requests its state, permissions, etc.
Best regards!
понедельник, 21 августа 2023 г. в 06:44:28 UTC, Michal Kuratczyk: