Memcached缓存始终为空的问题排查求助
Memcached缓存始终为空的问题排查求助
大家好,我遇到了一个头疼的问题:我把Memcached集成到LAMP栈和WordPress里后,其他一切看起来都正常,但Memcached的内存始终是空的。
用memcdump --servers=127.0.0.1执行后没有任何返回;通过telnet 127.0.0.1 11211连接上服务后,stats items没有输出内容,stats slabs的结果如下:
STAT active_slabs 0 STAT total_malloced 0
实在搞不清楚哪里出问题了,下面是我已经做过的所有排查步骤:
一、Memcached完整stats输出
执行stats命令得到的完整结果:
stats STAT pid 37127 STAT uptime 12198 STAT time 1706711922 STAT version 1.5.22 STAT libevent 2.1.11-stable STAT pointer_size 64 STAT rusage_user 1.447142 STAT rusage_system 0.916591 STAT max_connections 1024 STAT curr_connections 1 STAT total_connections 14 STAT rejected_connections 13 STAT connection_structures 2 STAT reserved_fds 20 STAT cmd_get 1 STAT cmd_set 0 STAT cmd_flush 0 STAT cmd_touch 0 STAT cmd_meta 0 STAT get_hits 0 STAT get_misses 1 STAT get_expired 0 STAT get_flushed 0 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 11417 STAT bytes_written 6580 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT time_in_listen_disabled_us 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT slab_reassign_rescues 0 STAT slab_reassign_chunk_rescues 0 STAT slab_reassign_evictions_nomem 0 STAT slab_reassign_inline_reclaim 0 STAT slab_reassign_busy_items 0 STAT slab_reassign_busy_deletes 0 STAT slab_reassign_running 0 STAT slabs_moved 0 STAT lru_crawler_running 0 STAT lru_crawler_starts 5100 STAT lru_maintainer_juggles 12246 STAT malloc_fails 0 STAT log_worker_dropped 0 STAT log_worker_written 0 STAT log_watcher_skipped 0 STAT log_watcher_sent 0 STAT bytes 0 STAT curr_items 0 STAT total_items 0 STAT slab_global_page_pool 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT evicted_active 0 STAT evictions 0 STAT reclaimed 0 STAT crawler_reclaimed 0 STAT crawler_items_checked 0 STAT lrutail_reflocked 0 STAT moves_to_cold 0 STAT moves_to_warm 0 STAT moves_within_lru 0 STAT direct_reclaims 0 STAT lru_bumps_dropped 0 END
二、服务器环境信息
- 运行环境:Ubuntu 20.04 + Apache 2.4 + PHP 7.4(php-fpm模式)
- 已安装的相关包:memcached(v1.5.22)、php7.4-memcached、libmemcached-tools
三、端口监听状态
执行netstat确认服务监听情况:
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 37127/memcached
四、Memcached配置文件
使用的是默认的/etc/memcached.conf,内容如下:
# run as a daemon -d # memory -m 64 # connection port -p 11211 # user -u memcache # listen -l 127.0.0.1 # pidfile -P /var/run/memcached/memcached.pid
五、进程与服务状态
- 进程存在:执行
ps -eaf | grep memcached结果
memcache 37127 1 0 12:15 ? 00:00:02 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
- 服务运行正常:执行
service memcached status结果
Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2024-01-31 12:15:26 CET; 3h 19min ago Docs: man:memcached(1) Main PID: 37127 (memcached) Tasks: 10 (limit: 5846) Memory: 2.1M CGroup: /system.slice/memcached.service └─37127 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid Jan 31 12:15:26 www systemd[1]: Started memcached daemon.
六、PHP模块配置
/etc/php/7.4/mods-available/memcached.ini的内容:
; priority=25 extension=memcached.so ; You need to install php-igbinary package to use igbinary serializer ; and php-msgpack to use msgpack serializer memcached.serializer=php
希望有经验的朋友能帮我看看,到底哪里没配置对导致Memcached一直没缓存内容?
备注:内容来源于stack exchange,提问作者Łukasz Korona
相关产品推荐
相关产品推荐

