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

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

ps -ef | grep memcached

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界面管理系统

相关

Related Posts

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

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

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

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

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

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

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

  1. linux shell 端口占用,linux 查看端口占用命令实例详解

    linux 查看端口占用命令实例详解 端口是系统非常重要的一个东东,我们经常需要查看哪个进程占用了哪个端口,或者哪个端口被哪个进程占用.废话不多说,直接上干货,教大家怎样查看系统端口占用情况. 方法一 ...

  2. linux netstat端口占用,Linux系统使用 netstat 查看和检查系统端口占用情况

    在 Linux 使用过程中,如果需要了解当前系统开放了哪些端口,及这些端口的关联进程和用户,可以通过 netstat 命令进行查询. netstat 命令各参数说明如下: -t:指明显示 TCP 端口 ...

  3. Linux查看端口占用情况的几种方式

    Linux查看端口占用情况的几种方式 概述 测试环境为Centos7.9,本文简单给出了几种检测端口的例子. 一.查看本机端口占用 1.netstat #安装netstat yum -y instal ...

  4. linux php进程端口占用,linux如何查看端口占用情况

    在linux中可以使用lsof和netstat命令来查看端口占用情况,其中lsof语法为"lsof -i:端口号",netstat语法为"netstat -tunlp | ...

  5. Linux 查看端口占用情况 并 结束进程

    lsof -i:端口号 kill -9 PID 原文:Linux 查看端口占用情况 并 结束进程 我的小站.Github.CSDN 有时候使用 ps 命令无法检查出特定的进程,可考虑通过观察端口占用情 ...

  6. linux查看端口占用终结,Linux查看端口占用

    ​ Linux查看端口占用得情况可以使用lsof和netstat 命令 lsof ​ lsof(list open files) 是一个列出当前系统打开文件的工具. lsf查看端口占用语法格式: ls ...

  7. linux查看端口占用

    文章目录 linux查看端口占用 检测端口是否打开 telnet nc 查看端口占用 netstat lsof ss 查看某进程端口占用 linux查看端口占用 检测端口是否打开 telnet #te ...

  8. linux查看server端口占用,Linux查看端口占用的命令

    Linux查看端口占用的命令 apt-get install lsof lsof -i:端口号 lsof常用命令 lsof -i:8080:查看8080端口占用 lsof abc.txt:显示开启文件 ...

  9. linux下端口占用杀死

    Linux 查看端口占用情况 lsof netstat Kill lsof lsof 是一个列出当前系统打开文件的工具. lsof查看端口占用语法格式: lsof -i:端口号 查看所有端口: lso ...

最新文章

  1. JS页面加载完成触发事件
  2. 小米2s屏幕_米家空气净化器3VS小米空气净化器2 成熟设计的优势
  3. dTree三级树形菜单
  4. 你为什么薪水那么低(二)之 生产力
  5. dos中for in后面执行多个命令的方法
  6. html怎样调取css,css怎么调用?
  7. ASP.NET中的Menu控件的应用
  8. android camera滑动,Android怎么实现小米相机底部滑动指示器
  9. 线上风控与数据埋点三部曲(一)——流量江湖不是处女地,投放渠道需谨慎
  10. idea粘贴代码为什么都在一行_【学园】今天程序员的每一行代码都是未来高达身上的一颗螺丝...
  11. webService的使用-----Eclipse
  12. CSS兼容IE6,IE7和FF的总结
  13. JavaSE、JavaEE、JavaME三者的关系与区别
  14. 计算机驱动程序安装不了,Win7系统安装不了主板驱动的解决方法
  15. Python爬虫 小白第一次爬虫
  16. 最新bilibili怎么下载视频
  17. ai无法启动计算机丢MSVCP100,win7系统丢失MSVCP100.dll导致程序无法启动的解决方法...
  18. AD画PCB常规问题分析
  19. R语言与多元线性回归方程及各种检验
  20. DirectX技术----D2D基础篇(一)

热门文章

  1. php跨进程内存共享,进程管理与内存共享
  2. 敏捷开发任务看板_看板方法的进化论:从丰田精益方法到敏捷研发
  3. 窗函数(Window Function)在信号处理当中的应用
  4. 转移纸缺陷在线检测系统
  5. gradle 刷新打包的时候报错
  6. [转]Git 撤销操作
  7. 平时如何管理你的项目?
  8. 2017CCPC秦皇岛 L题One-Dimensional MazeZOJ3992【模拟】
  9. SSH Tunnel扫盲(ssh port forwarding端口转发)
  10. vrpie在Visio Studio 中无法调试的问题