実現したいこと
あるオープンWEB系のそれなりにアクセスがあるサイトを運営しております。
そのシステムのアクセス数をパス毎に計測したいのですが、
instantaneous_ops_per_sec:486
この値が400を超えるとエラーになります。
redisの設定が悪いのでしょうか?
発生している問題・分からないこと
アクセスする毎に、パスをキーにして、INCREMENT 処理をしています。
(現状他の処理に影響を受けさせたくないため、これ用のredisサーバーを用意し、他の処理は走っておりません。)
以下の値が400くらいまでならなんとか処理出来るのですが、400を超えるとConnectionエラーが発生してしまいます。
instantaneous_ops_per_sec:486
本来であれば、↑の値は1万くらいまで耐えられるのではないかと思うのですが・・・
エラーメッセージ
error
1connection error
該当のソースコード
redis-cli info の結果を貼り付けておきます。 ubuntu@redis:~$ redis-cli info | grep instantaneous_ops_per_sec instantaneous_ops_per_sec:486 ubuntu@redis:~$ redis-cli info | grep instantaneous_ops_per_sec instantaneous_ops_per_sec:332 ubuntu@redis:~$ redis-cli info # Server redis_version:7.0.15 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:d81b8ff71cfb150e redis_mode:standalone os:Linux 6.8.0-1016-oracle x86_64 arch_bits:64 monotonic_clock:POSIX clock_gettime multiplexing_api:epoll atomicvar_api:c11-builtin gcc_version:13.2.0 process_id:5149 process_supervised:systemd run_id:a57c5db7fb2e42efa08aef56b6b006f1c1699d6d tcp_port:6379 server_time_usec:1733485810631947 uptime_in_seconds:625981 uptime_in_days:7 hz:10 configured_hz:10 lru_clock:5432562 executable:/usr/bin/redis-server config_file:/etc/redis/redis.conf io_threads_active:0 # Clients connected_clients:33 cluster_connections:0 maxclients:10000 client_recent_max_input_buffer:20480 client_recent_max_output_buffer:0 blocked_clients:0 tracking_clients:0 clients_in_timeout_table:0 # Memory used_memory:1623405304 used_memory_human:1.51G used_memory_rss:1874042880 used_memory_rss_human:1.75G used_memory_peak:1625447648 used_memory_peak_human:1.51G used_memory_peak_perc:99.87% used_memory_overhead:1080335764 used_memory_startup:876120 used_memory_dataset:543069540 used_memory_dataset_perc:33.47% allocator_allocated:1624028928 allocator_active:1839931392 allocator_resident:1866817536 total_system_memory:25194946560 total_system_memory_human:23.46G used_memory_lua:31744 used_memory_vm_eval:31744 used_memory_lua_human:31.00K used_memory_scripts_eval:0 number_of_cached_scripts:0 number_of_functions:0 number_of_libraries:0 used_memory_vm_functions:32768 used_memory_vm_total:64512 used_memory_vm_total_human:63.00K used_memory_functions:200 used_memory_scripts:200 used_memory_scripts_human:200B maxmemory:21474836480 maxmemory_human:20.00G maxmemory_policy:allkeys-lru allocator_frag_ratio:1.13 allocator_frag_bytes:215902464 allocator_rss_ratio:1.01 allocator_rss_bytes:26886144 rss_overhead_ratio:1.00 rss_overhead_bytes:7225344 mem_fragmentation_ratio:1.15 mem_fragmentation_bytes:250621936 mem_not_counted_for_evict:3072 mem_replication_backlog:1073755212 mem_total_replication_buffers:1077136632 mem_clients_slaves:3394808 mem_clients_normal:263424 mem_cluster_links:0 mem_aof_buffer:3072 mem_allocator:jemalloc-5.3.0 active_defrag_running:0 lazyfree_pending_objects:0 lazyfreed_objects:0 # Persistence loading:0 async_loading:0 current_cow_peak:0 current_cow_size:0 current_cow_size_age:0 current_fork_perc:0.00 current_save_keys_processed:0 current_save_keys_total:0 rdb_changes_since_last_save:1040316 rdb_bgsave_in_progress:0 rdb_last_save_time:1733481964 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:12 rdb_current_bgsave_time_sec:-1 rdb_saves:5552 rdb_last_cow_size:3006464 rdb_last_load_keys_expired:0 rdb_last_load_keys_loaded:0 aof_enabled:1 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:12 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok aof_rewrites:77 aof_rewrites_consecutive_failures:0 aof_last_write_status:ok aof_last_cow_size:3608576 module_fork_in_progress:0 module_fork_last_cow_size:0 aof_current_size:198087855 aof_base_size:192976921 aof_pending_rewrite:0 aof_buffer_length:0 aof_pending_bio_fsync:0 aof_delayed_fsync:0 # Stats total_connections_received:118407872 total_commands_processed:147168592 instantaneous_ops_per_sec:380 total_net_input_bytes:9532839370 total_net_output_bytes:6654711911 total_net_repl_input_bytes:0 total_net_repl_output_bytes:5716577785 instantaneous_input_kbps:22.54 instantaneous_output_kbps:24.35 instantaneous_input_repl_kbps:0.00 instantaneous_output_repl_kbps:22.49 rejected_connections:0 sync_full:1 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 expired_stale_perc:0.00 expired_time_cap_reached_count:0 expire_cycle_cpu_milliseconds:4865 evicted_keys:0 evicted_clients:0 total_eviction_exceeded_time:0 current_eviction_exceeded_time:0 keyspace_hits:54495 keyspace_misses:2 pubsub_channels:0 pubsub_patterns:0 pubsubshard_channels:0 latest_fork_usec:34791 total_forks:5630 migrate_cached_sockets:0 slave_expires_tracked_keys:0 active_defrag_hits:0 active_defrag_misses:0 active_defrag_key_hits:0 active_defrag_key_misses:0 total_active_defrag_time:0 current_active_defrag_time:0 tracking_total_keys:0 tracking_total_items:0 tracking_total_prefixes:0 unexpected_error_replies:0 total_error_replies:1 dump_payload_sanitizations:0 total_reads_processed:265576431 total_writes_processed:242647978 io_threaded_reads_processed:0 io_threaded_writes_processed:0 reply_buffer_shrinks:577784 reply_buffer_expands:1 # Replication role:master connected_slaves:1 slave0:ip=10.0.1.249,port=6379,state=online,offset=5716563710,lag=0 master_failover_state:no-failover master_replid:031645b0bae484072a5738f0f6328e4612baf329 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:5716577525 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1073741824 repl_backlog_first_byte_offset:4642823361 repl_backlog_histlen:1073754165 # CPU used_cpu_sys:8715.896671 used_cpu_user:2438.235513 used_cpu_sys_children:1414.177144 used_cpu_user_children:27977.623618 used_cpu_sys_main_thread:8639.726319 used_cpu_user_main_thread:2429.331752 # Modules # Errorstats errorstat_WRONGTYPE:count=1 # Cluster cluster_enabled:0 # Keyspace db0:keys=37966,expires=0,avg_ttl=0
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
パスがキーとなるので、同じキーに対してのINCREMENTになり、同じキーの処理で渋滞を起こしているのかと思い、パス + ランダム数字(0~99)の数字を追加して分散してみましたが、変わらず400以上でエラーとなってしまいました。
(全部が全部エラーになるわけではなく、アクセス数が多いので一部のユーザーがConnect error になっているかと思います。また他のユーザーは、レスポンスが悪い状態になっております)
補足
ubuntu@redis:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
ubuntu@redis:~$ redis-cli -v
redis-cli 7.0.15
あなたの回答
tips
プレビュー