AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 422350
Accepted
mahen3d
mahen3d
Asked: 2012-08-29 23:11:32 +0800 CST2012-08-29 23:11:32 +0800 CST 2012-08-29 23:11:32 +0800 CST

Memcached 调试/服务器日志监控 Memcached 服务器?

  • 772

我有基于 Memcached 变量的聊天引擎,将它们放入数组并通过 jquery 在另一端读取它们,

这在 95% 的情况下工作正常,但是当服务器负载高 memcached(假设它是 memcached)时,崩溃和浏览器会卡住。

我不认为它的 jquery 问题,因为这只发生在服务器负载非常高的时候。

我需要一种方法来监视 memcached 服务器或以某种方式将日志文件写入失败/错误出现的位置......

关于我该怎么做的任何想法?或者知道为什么 memcached 服务器会失败?我按如下方式运行 memcached

$GLOBALS['MemCached'] = FALSE;
$GLOBALS['MemCached'] = new Memcache;
$GLOBALS['MemCached']->pconnect('localhost', 11211);

我的 memcached 配置如下

#! /bin/sh
#
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# pidfile: /var/run/memcached/memcached.pid

# Standard LSB functions
#. /lib/lsb/init-functions

# Source function library.
. /etc/init.d/functions

PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=128
OPTIONS=""

if [ -f /etc/sysconfig/memcached ];then 
    . /etc/sysconfig/memcached
fi

# Check that networking is up.
. /etc/sysconfig/network

if [ "$NETWORKING" = "no" ]
then
    exit 0
fi

RETVAL=0
prog="memcached"
pidfile=${PIDFILE-/var/run/memcached/memcached.pid}
lockfile=${LOCKFILE-/var/lock/subsys/memcached}

start () {
    echo -n $"Starting $prog: "
    # Ensure that /var/run/memcached has proper permissions
    if [ "`stat -c %U /var/run/memcached`" != "$USER" ]; then
        chown $USER /var/run/memcached
    fi

    daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch ${lockfile}
}
stop () {
    echo -n $"Stopping $prog: "
    killproc -p ${pidfile} /usr/bin/memcached
    RETVAL=$?
    echo
    if [ $RETVAL -eq 0 ] ; then
        rm -f ${lockfile} ${pidfile}
    fi
}

restart () {
        stop
        start
}


# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status -p ${pidfile} memcached
    RETVAL=$?
    ;;
  restart|reload|force-reload)
    restart
    ;;
  condrestart|try-restart)
    [ -f ${lockfile} ] && restart || :
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|try-restart}"
    RETVAL=2
        ;;
esac

exit $RETVAL
linux
  • 3 3 个回答
  • 47286 Views

3 个回答

  • Voted
  1. Khaled
    2012-08-29T23:19:27+08:002012-08-29T23:19:27+08:00

    首先,您没有显示 memcached 配置,而是显示启动脚本。您需要查找一个名为/etc/memcached.conf. 要启用日志记录,您需要取消注释该行

    logfile /var/log/memcached.log
    

    -v此外,您可以通过启用或-vv选项来增加详细程度。

    如果 memcached 崩溃,您可以查看系统日志/var/log/messages并/var/log/syslog检查可能的错误情况。

    • 8
  2. Best Answer
    quanta
    2012-08-30T01:23:32+08:002012-08-30T01:23:32+08:00

    在 中定义一个附加变量/etc/sysconfig/memcached:

    PORT="11211"
    USER="memcached"
    MAXCONN="1024"
    CACHESIZE="64"
    LOGFILE="/var/log/memcached.log"
    OPTIONS=""
    

    如下编辑start()初始化脚本中的函数:

    start () {
        #echo -n $"Starting $prog: "
        # insure that /var/run/memcached has proper permissions
        if [ "`stat -c %U /var/run/memcached`" != "$USER" ]; then
            chown $USER /var/run/memcached
        fi
    
        #daemon --pidfile /var/run/memcached/memcached.pid memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS -vv > $LOGFILE 2>&1
        $prog -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS -vv > $LOGFILE 2>&1
        RETVAL=$?
        #echo
        [ $RETVAL -eq 0 ] && action $"Starting $prog: " /bin/true && touch /var/lock/subsys/memcached
    }
    

    然后重新启动 memcached,您将在以下内容中看到类似的内容/var/log/memcached.log:

    slab class  40: chunk size    616944 perslab       1
    slab class  41: chunk size    771184 perslab       1
    slab class  42: chunk size   1048576 perslab       1
    <26 server listening (auto-negotiate)
    <27 server listening (auto-negotiate)
    <28 send buffer was 129024, now 268435456
    <29 send buffer was 129024, now 268435456
    <28 server listening (udp)
    <29 server listening (udp)
    

    不要忘记配置 logrotate。

    • 5
  3. salah-1
    2021-02-24T07:06:05+08:002021-02-24T07:06:05+08:00

    考虑到您的 memcached 配置位于 [/etc/sysconfig/memcached](Redhat RHEL 和 Centos 8 等),您只需将以下开关添加到您的选项并重新启动 memcached。然后它会将内容记录到 /var/log/messages(如果你以后愿意,可以添加轮换)

    OPTIONS="-vv"
    

    如果您不想记录太多日志,请删除其中一个 v

    以下配置将使 memcache 监听 localhost 并禁用 udp 除了记录到 /var/log/messages

    OPTIONS="-l 127.0.0.1, -U 0, -vv"
    

    在您对日志记录感到满意并且不再需要日志记录后,只需从选项 [OPTIONS=""] 中删除所有内容,然后使用以下命令检查何时需要:

    memcached-tool 127.0.0.1:11211 stats
    

    或者

    echo stats | nc 127.0.0.1 11211
    
    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve