linux memcache端口占用,Linux: memcache的安装和启动、停止、重启, 检查memcache server是否开启...

memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。据说官方所说,其用户包括twitter、digg、flickr等,都是些互联网大腕呀。目前用memcache解决互联网上的大用户读取是非常流行的一种用法。

更多可以参考:

安装

sudo apt-get install memcached

启动memcache服务

memcached -d -m 128 -p 11111 -u root

启动方式:

-d 以守护程序(daemon)方式运行

-u root 指定用户,如果当前为root ,需要使用此参数指定用户

-P /tmp/a.pid保存PID到指定文件

内存设置:

-m 1024 数据内存数量,不包含memcached本身占用,单位为MB

-M 内存不够时禁止LRU,报错

-n 48初始chunk=key+suffix+value+32结构体,默认48字节

-f 1.25 增长因子,默认1.25

-L启用大内存页,可以降低内存浪费,改进性能

连接设置:

-l 127.0.0.1 监听的IP 地址,本机可以不设置此参数

-p 11211 TCP端口,默认为11211,可以不设置

-U 11211UDP端口,默认为11211,0为关闭

并发设置:

-c 1024最大并发连接数,默认1024,最好是200

-t 4线程数,默认4。由于memcached采用NIO,所以更多线程没有太多作用

-R 20每个event连接最大并发数,默认20

-C禁用CAS命令(可以禁止版本计数,减少开销)

检测memcache服务

1、查看启动的memcache服务:

netstat -lp | grep memcached

14b27785ba4a7f7797bc6f2f76aba646.png

2、查看memcache的进程号(根据进程号,可以结束memcache服务:“kill -9 进程号”)

ps -ef | grep memcached

103d7b0381bdfe7dad7f659b465ad2fe.png

memcache的运行状态可以方便的用stats命令显示。首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。这些状态的说明如下:

pid

memcache服务器的进程ID

uptime

服务器已经运行的秒数

time

服务器当前的unix时间戳

version

memcache 版本

pointer_size

当前操作系统的指针大小(32位系统一般是32bit)

rusage_user

进程的累计用户时间

rusage_system

进程的累计系统时间

curr_items

服务器当前存储的items数量

total_items

从服务器启动以后存储的items总数量

bytes

当前服务器存储items占用的字节数

curr_connections

当前打开着的连接数

total_connections

从服务器启动以后曾经打开过的连接数

connection_structures

服务器分配的连接构造数

cmd_get

get命令(获取)总请求次数

cmd_set

set 命令(保存)总请求次数

get_hits

总命中次数

get_misses

总未命中次数

evictions

为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)

bytes_read

总读取字节数(请求字节数)

bytes_written

总发送字节数(结果字节数)

limit_maxbytes

分配给memcache的内存大小(字节)

threads

当前线程数

关闭memcache服务

kill `cat /tmp/memcached.pid`

以及通过 ps -ef | grep memcached  获取进程号,然后运行

kill -9 进程号

定时任务检查memcache服务是否开启,否则自动开启

memcache_check.sh

#!/usr/bin/env bash

#check memcacheprocess and restart if down

mm_bin"/usr/bin/memcached" #可以通过 `whereis memcached` 来获取

mm_log="/var/www/html/var/memcached_check.log"

mm_ports=("11211" "11212")

mm_param=("-d -m 20480 -p 11211 -u root" "-d -m 256 -p 11212 -u root")

mm_count=${#mm_ports[@]}

t=$(date -d "today" +"%Y-%m-%d %H:%M:%S")

i=0

while [ $i -lt $mm_count ]

do

mm_exists=`ps -ef|grep "memcached"|grep "${mm_ports[$i]}"|grep -v grep|wc -l`

if [ "$mm_exists" == "0" ]; then

${mm_bin} ${mm_param[$i]} 2>&1 > /dev/null &

echo "${t} : ${mm_bin} ${mm_param[$i]}" >> ${mm_log}

fi

let i++

done

然后编辑定时任务:

crontab -e

添加新行

# check memcached server

* * * * * /bin/sh /var/www/html/shell/memcache_check.sh > /dev/null 2>&1

上面 memcache_check.sh 文件地址,需要根据自己实际地址来修改。

备用shell语句:

#检查mysql状态

PORT=`netstat -na | grep "LISTEN" | grep "3306" | awk '{print $4}' | awk -F. '{print $2}'`

if [ "$PORT" -eq "3306" ]

#检查mysql占CPU负载

mysql_cpu=`top -U root -b -n 1 | grep mysql | awk '{print $10}'|awk -F. '{print $1}'`

#如果mysql cpu负载大于80,则重启mysql

if [ "$mysql_cpu" -ge "80" ]

#获得相关信息

ps -ef|grep "memcached"|grep -v "grep"|wc -l

ps -ef|grep "memcached"|grep "11211"|grep -v "grep"|wc -l

ps aux|grep "memcached"|grep -v "grep"|awk '{sum+=$4;n++};END{print sum}'

ps aux|grep "memcached"|grep -v "grep"|awk '{printf $1}'

MYPORT=`netstat -na|grep "tcp"|grep "3306"|awk -F[:" "]+ '{print $5}'`

HAPORT=`netstat -na|grep "udp"|grep "694"|awk -F[:" "]+ '{print $5}'`

PING=`ping -c 5 www.linuxtone.org|awk -F, '/packets/{print $3}'|cut -c 2-|awk '{print $1}'`

DB1IP=`ifconfig eth0|awk '/inet/{print $2}'|cut -c 6-`

crontab 的一些资料:

基本格式:

*  *  *  *  *  command

分  时 日  月  周  命令

第1列表示分钟1~59 每分钟用 * 或 */1 表示,*/10表示每10分钟

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

memcache使用方法

memcache界面管理系统

cbd5a61765aed016a56103b68dcc8d51.gif

相关

Related Posts

0b36a9d47ec98bfadce611227181fdca.png

Linux Shell脚本入门教程系列之(一)Shell简介

本文是Linux Shell脚本系列教程的第(一)篇,更多shell教程请看:Linux Shell脚本系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知识。 Shell简介 Shell自身是一个用C语言编写的程序,是用户来使用Unix或Linux的桥梁,用户的大部分工作都需要通过Shell来完成。只有熟练使用shell,才能熟练掌握linux。 可以说:Shell既是一种命令语言,又是一种程序设计语言。 作为命令语言,它可以交互式地解释和执行用户输入的命令;而作为程序设计语言,它可以定义各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 Shell虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式来协调各个程序的运行。…

889a1327590d66f718ae1fa9c7aab739.png

Linux Shell Script 系列教程目录, Shell脚本编程, Shell编程, Shell脚本编程入门

本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类、语法格式以及脚本的使用和编写格式等。 不断更新中,是Shell学习的必读经典教程。 Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Shell脚本 Linux Shell系列教程之(三)Shell变量 Linux…

f5278b33bcdcdee51d3260555db6b5ce.png

Linux Shell脚本入门教程系列之(四)Shell注释

本文是Linux Shell脚本系列教程的第(四)篇,更多shell教程请看:Linux Shell脚本系列教程 与许多的编程语言一样,Shell中也有注释符号,继上一篇之后,今天就为大家来介绍下Shell中的注释的语法及用法。 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略。 比如下面的代码: #!/bin/bash # Author…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值