浏览模式: 普通 | 列表
分类: memcache | 1
今天发现php-fpm有慢语句 session_start()
网上认为是相同浏览器访问相同网站,不同的tab会出现这个问题。
锁了session写入但是能读取。

网上解决方法
在写入完session后立即执行掉 session_write_close()
也就是保存当前session,然后解除锁定。


推论:
此站没有用文件保存session,而是使用了memcached,同样涉及到session锁死的问题
不过高并发下才出现可能是memcached设置的并发量不够
就把原来的1024直接改为4096,运行一段时间看负载情况


另外session赋值结束可以使用 session_commit() ,避免php页执行时间长导致session锁死
下面的例子可以演示 一个调用session的php运行如果没有结束,其它php运行就会一直等待下去,从而php-fpm超时
...

阅读全文…

windows下开启php_opcache缓存

[ 2014-06-16 13:39:19 | 作者: admin ]
PHP5.3.27 的扩展php_opcache.dll

测试平台:Windows 2008 R2 x64 (IIS7.5 FastCGI,Apache2.2.23,Apache2.4.3, Nginx 1.2.9)

包含 Non Thread Safe 和 Thread Safe

如果用的是 FastCGI 请使用 Non Thread Safe 版

php_opcache.dll 的使用方法

php.ini 中加入以下代码

[opcache]

zend_extension = "D:\phpecorg\PHP\ext\php_opcache.dll"

opcache.enable = 1

opcache.enable_cli = 1

opcache.memory_consumption = 256

opcache.interned_strings_buffer = 8
...

阅读全文…

最简便的清空memcache的方法

[ 2013-01-10 09:49:27 | 作者: admin ]
如果要清空memcache的items,常用的办法是什么?杀掉重启?如果有n台memcache需要重启怎么办?

很简单,假设memcached运行在本地的11211端口,那么跑一下命令行:

[root]$ echo ”flush_all” | nc localhost 11211

另外也可以,telnet localhost 11211

然后,flush_all

注:

flush并不会将items删除,只是将所有的items标记为expired。

如果telnet失败,请在控制面板中选择 程序->程序和功能 -> 打开或关闭windows功能 -> 选中的telnet客户端确认打开即可。

win2003 discuz的memcache 安装

[ 2012-12-17 21:55:03 | 作者: admin ]
p.s. discuz上memcache后效果异常明显,所以大部分中型php项目还是应当开启memcache。尤其是windows平台下面,应该有3倍以上性能提升

先去下载 安装程序 memcached-1.2.6-win32(可以百度搜索memcached win32查看更新版本)
然后解压到 d:\memcache
然后 开始—运行 d:\memcached\memcached.exe -d install 安装一下
在输入 d:\memcached\memcached.exe -d start 启动。
以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

去下载php_memcache.dll 整对版本了。。http://downloads.php.net/pierre/
(版本需要注意选择,...

阅读全文…
1