魏长东

weichangdong

正在查看: 2016年11月日志归档(第 1 页 / 共 16 篇)

redis查看使用了多少内存

# Memory
used_memory:1147092504
used_memory_human:1.07G //使用了多少
used_memory_rss:1186713600
used_memory_rss_human:1.11G
used_memory_peak:5887659864
used_memory_peak_human:5.48G
total_system_memory:8374919168
total_system_memory_human:7.80G//redis总共可用内存大小
used_memory_lua:37888
used_memory_lua_human:37.00K

php 科学计数法还原

有时候需要用php的microtime做唯一的id,但是生成之后,显示出来就成科学记数法了,用下面代码可以还原。
function NumToStr($num){ 
    if (stripos($num,'e')===false) return $num; 
   // $num = trim(preg_replace('/[=\'"]/','',$num,1),'"');//出现科学计数法,还原成字符串 
    $result = ""; 
    while ($num > 0){ 
        $v = $num - floor($num / 10)*10; 
        $num = floor($num / 10); 
        $result   =   $v . $result; 
    }//开源代码phpfensi.com 
    return $result; 
}

nginx-push-stream-module 使用

安装完成之后,实现了我一直以来想实现的效果。浏览器上显示了推送的消息。不是浏览器主动请求触发的。

大体流程这样的,现在浏览器上访问一个地址,然后这个请求应该是一直没断。然后我在服务器发送一条消息,浏览器就显示了这条消息。好神奇啊,有木有~~~~

web-push.png

下面给出安装的过程

»»阅读全文

yii1扑捉php错误

因为php环境可能配置的不是很完善,php的500错误,只是表现在nginx的access日志,一直以为是redis处理不过来(每秒请求1300)。

最后发现是代码迁移过程中,php版本变化了,有带吗报错,但是没有显现出来。通过下面这个方法,直到了是有php报错,然后很快就修复了,问题解决了。

public function actionError()
{
    if($error=Yii::app()->errorHandler->error)
        $this->render('error', $error);
}

域名出手

现以下域名均可出手,有意联系qq 545825965。

www.0huaqian.com 零花钱

www.mobimagic.cn 摩比神器

www.360batteryplus.com 360电池

www.baidudianqi.com 百度电器

www.70shuo.com 麒麟说

www.70say.com 麒麟说

很好用的软件(chrome插件)

chrome 浏览器上可以玩转好多好玩意。

markdown相关,可以装换成pdf

 Markdown  Editer

 Markdown Preview Plus

模拟请求的 帅的很 

 RestEasy HttpRequester PostMan

lua lua

1、ngx.get_phase

Syntaxstr=ngx.get_phase()

Context init_by_lua*, init_worker_by_lua*, ssl_certificate_by_lua*, set_by_lua*, rewrite_by_lua*, access_by_lua*, content_by_lua*, header_filter_by_lua*, body_filter_by_lua*, log_by_lua*, ngx.timer.*, balancer_by_lua*

指令功能:返回当前运行的阶段名字。

init上下文为init_by_luainit_by_lua_file

init_worker上下文为init_worker_by_luainit_worker_by_lua_file

ssl_cert上下文为ssl_certificate_by_lua_block  ssl_certificate_by_lua_file

set上下文为 set_by_lua set_by_lua_file

rewrite上下文为rewrite_by_lua  rewrite_by_lua_file

balancer上下文为balancer_by_lua_block balancer_by_lua_file

access上下文为access_by_lua  access_by_lua_file

content上下文为content_by_lua content_by_lua_file

header_filter上下文为body_filter_by_lua body_filter_by_lua_file

body_filter上下文为log_by_lualog_by_lua_file

log上下文为log_by_lua log_by_lua_file

timer上下文为使用ngx.timer的回调函数;

 

2、lua_package_path

syntaxlua_package_path app/lib/?.lua;app/etc/?.lua;

default:编译时的lua_path

contexthttp

examplelua_package_path "$prefix/app/lib/?.lua;$prefix/app/etc/?.lua;$prefix/app/src/?.lua;;";

指令功能:指明lua库的位置,一般是.lua,在nginx配置里可以直接调用,而不用指定目录。


3、lua_package_cpath

syntaxlua_package_path app/lib/?.so;app/etc/?.so;

default:编译时的lua_cpath

contexthttp

examplelua_package_cpath "$prefix/app/lib/?.so;$prefix/../luajit/lib/lua/5.1/?.so;;";

指令功能:指明lua C库的位置,一般是.so,在nginx配置里可以直接调用,而不用指定目录。


4、lua_max_running_timers

Syntaxlua_max_running_timers <count>

Defaultlua_max_running_timers 256

Contexthttp

Examplelua_max_running_timers 512;

指令功能:设置running timers(回调函数还在运行的timer)的最大值。


5、lua_max_pending_timers

Syntaxlua_max_pending_timers <count>

Defaultlua_max_pending_timers 1024

Contexthttp

Examplelua_max_running_timers 512;

指令功能:设置pending timers(还未过期的timer)的最大值。


6、lua_check_client_abort

syntaxlua_check_client_abort on|off;

default:  off

contexthttp/server/location/location-if

examplelua_check_client_abort on

指令功能:控制是否检查premature client connection abortion,如果打开该选项,当client过早关闭连接时,会清除所有的lualight threads”。


7、lua_socket_log_errors

Syntaxlua_socket_log_errors on|off

Defaultlua_socket_log_errors on

Contexthttp/server/location

Examplelua_socket_log_errors off;

指令功能:在发生TCPUDP cosocket错误时,该指令可以切换错误的日志记录方式,如果已经有合适的处理方式,该指令相当于off,否则就会记录到error log(比较消耗性能)。


8、lua_http10_buffering

Syntaxlua_http10_buffering on|off

Defaultlua_http10_buffering on

Contexthttp/server/location/location-if

Examplelua_http10_buffering off;

指令功能:当请求是HTTP1.0或更老版本时,该指令用于enable/disable 自动的响应缓冲,当响应body特别大时,建议调成off,以免内存消耗过多。


9、lua_shared_dict

syntaxlua_shared_dict <name> <size>

defaultno

contexthttp

examplelua_shared_dict dogs 10m;

指令功能:定义共享内存及大小。

域名解析

CNAME	*	默认	wcd.xxx.com
A		www	默认	123.456.789.222
A		@	默认	123.456.789.222

超线程 多核 多处理器区别

1 超线程技术

每个单位时间内,CPU只能处理一个线程(Thread)。除非有两个核心处理单元,否则要想在单位时间内处理超过一个的线程是不可能的。

超线程HT(Hyper-Threading)技术是在单个核心处理单元中集成两个逻辑处理单元,也就是一个实体内核(共享的运算单元),两个逻辑内核(有各自独立的处理器状态),在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。

虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。

2 多处理器

多处理器(Multiprocessor)系统由不同芯片上的多个处理器组成。多处理器系统因IT服务器的应用在上世纪九十年代得以普及。在当时,它们是可以插入机架服务器的处理器主板。现在,多处理器系统可以构建在同一块电路板上,处理器之间通过一个高速通信接口连接。

»»阅读全文