memcache内存分配策略及内存计算

今天研究了一下memcache的内存分配策略,发现其和redis的确是有很大不同的,很多人知道memcache是提前预占用内存的,并且,其内存的占用是定长的,所以其内存的占用是可以被计算出来的。但是,其分配策略不是那么简单的,其合理的设置调优,也并不是那么容易的事情。下面就讲一下我的理解。以及-m参数认为无效的原因。 理解memcache的确必须先理解 slab、page、chunk 三个概念。page组成了slab,chunk组成了page,chunk是数据真实存储的位置,默认情况下,page的大小是1M,当然这个可以通过参数修改,chunk默认从96B开始,以1.25的倍数在slab区间增长。即,slab1 的chunk为96B,那slab2的所有chunk都是120B,那slab3的所有chunk就是150B,依次类推。因为page大小都是1m,那么相当于chunk的个数就确定了,如果slab1有一个page,那么就应该有10922个chunk,在内存未达到配置内存上限的时候,这个page是可以增加的,但是这里增加的单位就是page,也就是1M,比如已经存了10922个96B以下数据的key,再存一个新的,内存又没有达到配置上限,就会page增加,相应的也就再增加10922个chunk。下面具体代码看一下

shell监控load以及小数判断

简单的shell监控服务器负载的话,可用使用uptime命令,获取load,然后根据使用awk,和你预定义阈值对比 只不过shell小数做比较需要特殊处理一下

纯php做类似php-fpm多进程管理服务

php-fpm,以及现在比较火的workman,swoole,其都是使用的多进程的管理模式,使用manger进程,管理其子进程,今天通过纯php做了一个类似的小东西,这样以后再做守护脚本的时候,可以使用这种方式,好处就是,多进程,更能利用多核的优势,并且可以做平滑重启。 本代码实现的功能,可以自定义子进程数,比如你定3个子进程,运行会产生1个manger进程,3个work进程,通过linux信号,来实现,进程的平滑重启。

20

09-2016

linux使用文件作为swap分区简介

新增swap分区 根据Redhat公司的建议,swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大, 例如要顺利执行Oracle数据库软件,swap分区至少需要400MB或者物理内存 2倍以上的空间.当然我们在安装Linux的时候,就能直接讲swap分区设置到足够的大小,但如果已经安装好Linux了,之后又想再安装类似 Oracle的软件,却发现swap分区空间不够,该如何处理?

mysql配置my.cnf包含innodb配置详解

mysql配置my.cnf包含innodb配置详解

9

09-2016

php等守护进程监控脚本

php等守护进程监控脚本

此脚本用户守护监控进程的执行情况,因为有的时候,我们用各类开发语言做的守护进程可能会因为一些特殊情况被退出,所以此脚本就是为了重启这些进程

window dns小工具及linux用户登录监控脚本

最近一直都比较忙,好久都没有写点东西了,但其实最近挺有一些技术和工作上的心得的。今天算是难得自己这块有空闲了。说两个这两天搞的一个小东西。一个人的价值有的时候就是体现在给别人解决问题,或者给别人提供方便,简化团队、他人的工作,提供效率。所以我一直其实是比较热心向别人推销一些我喜欢使用的一些工具、软件、还有技巧的。无论从上线修改脚本小工具,还是我们的邮件系统,还是我们现在使用的一些markdown、编辑器、数据库管理软件等等,我都是这样做的。今天介绍下一个window下的本地dns工具以及一个闲来无事写的shell脚本。

28

07-2015

Linux的chattr与lsattr命令

Linux的chattr与lsattr命令

这个命令对于做系统运维有很大帮助的,保证日志和配置文件的安全 这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。 chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files… 最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的 属性。

转:简单而直接的Python web 框架:web.py

前两天写的git钩子,一直觉得还需要两个语言来配合实现,而且还要一个中间文件十分不方便,于是想着能否完全使用python,找来找去,找到了一个非常简便的python web框架,web.py,使用起来非常简单方便。因为一般的web服务器,如nginx,apache,利用服务端脚本的fast_cgi进程做web服务,一般都无法使用root身份,但是如果使用脚本直接作为web服务,就像python,node这样的,就十分方便了。

centos+nginx搭载markdown解析渲染

今天终于做了一直以来我特别想要实现的功能,就是在自己的服务器上支持markdown文档的渲染,昨天经过我的不懈努力终于实现了md文档的渲染,以后就可以写markdown的静态文档了,好了先来看一下效果吧; http://www.521php.com/md/