windows下PHP APC拓展的安装和配置

 

APC简介

APC(Alternative PHP Cache)是一个PHP缓存。它在内存中存储PHP页面并且减少了硬盘的I/O。这对于性能的提升十分明显。你甚至可以在CPU使用率下降50%的情况下提升系统50%的性能。

这篇教程我们会告诉大家如何在windows上安装APC。我已经在windows server 2003上成功测试。当然,在你也可以使用windows xp做为测试服务器。

windows下安装PHP的APC拓展

注意:你不能在一天服务器上同时安装APC和Zend Optimiser,二者只能选其一。

按照下面的方法安装PHP的APC拓展。

下载正确的版本

我是用的PHP版本是5.2.6,附上下载地址:php_apc_dll for php5_2_6

注意:确定你所下载的APC拓展版本对应了你的PHP版本。

设置php.ini

编辑php.ini文件,向其中的拓展区域部分添加如下代码

1extension = php_apc.dll

重启服务器,使用phpinfo查看是否成功安装

1phpinfo();
phpinfo查看apc拓展是否安装成功

查看可用的内存

创建一个php文件apcmeminfo.php

1print_r(apc_sma_info());

 

 

1//由缓存使用的内存数量使用这个公式来计算:
2total_memory = apc.shm_segments * apc.shm_size

在这个例子中,可用的内存大约32 Mb。通常,如果我们需要在我们的缓存中超过32 Mb,我们应该增加APC使用的分段数量。然而,这可以导致web服务器错误,因此最好是增加片断的大小。我们应该逐步为缓存增加可用的总量,以避免内存的流失。

默认的APC如下:

1apc.cache_by_default = On
2apc.enable_cli = Off
3apc.enabled = On
4apc.file_update_protection = 2
5apc.filters =
6apc.gc_ttl = 3600
7apc.include_once_override = Off
8apc.max_file_size = 1M
9apc.num_files_hint = 1000
10apc.optimization = Off
11apc.report_autofilter = Off
12apc.shm_segments = 1
13apc.shm_size = 30
14apc.slam_defense = 0
15apc.stat = On
16apc.ttl = 0
17apc.user_entries_hint = 100
18apc.user_ttl = 0
19apc.write_lock = On

关于APC完整的参数设置的解释,请查阅:http://www.php.net/apc
下面是一个php.ini中的一个APC块。请将它们粘贴进你的php.ini文件中:

1apc.enabled = 1
2apc.shm_segments = 1
3apc.shm_size = 64
4apc.max_file_size = 10M
5apc.stat=1

剩余其它的设置将会使用默认值。

设置临时目录

APC需要一个临时目录来存储文件。它会尝试在windows的临时目录缓存文件,事先请给临时目录写的权限

监控和调优缓存

 



 APC源包含一个php脚本,该脚本对于监控和调优性能的缓存是很有用的。

1,   下载APC监控文件:http://pecl.php.net/package/apc
2,   压缩包中的apc.php文件显示APC监控信息。
3,   运行这个文件,你会看到一个图形显示你的缓存一些统计数据。
4,   调优缓存,查看General Cache Information and Detailed Memory Usage and Fragmentation sections(总体缓存信息和详细的内存使用以及碎片部分)。
5,   监视Cache Full Count和碎片百分比,如果Cache Full Count大于0,表示缓存已满并且频繁读写,因为没有足够的内存被分配。增加apc.shm_size可解决问题。
6,   碎片百分比应该是0%,但是随着内存频繁的读写,其值会上涨。

apc.php的安全

注意apc.php的安全,应该使用安全认证的方式来控制apc.php的信息输出,比如:

1// Moodle user Authentication
2 require_once("../config.php");
3 require_once($CFG--->libdir.'/adminlib.php');
4require_login();
5 require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM, SITEID));
6 
7// Disable APC Auth(APC 的安全认证)
8 defaults('USE_AUTHENTICATION',0);
9//....
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows APC(Asynchronous Procedure Call)是一种异步过程调用机制,它允许一个线程在另一个线程上异步执行指定的函数。APC 机制是 Windows 操作系统中非常重要的一部分,它被广泛用于实现各种系统功能,例如异步 I/O、线程池等。 在 Windows 中,每个线程都有一个 APC 队列,该队列中存储了需要在该线程上异步执行的函数。当一个线程进入 Alertable 状态时(例如调用 Sleep、WaitForSingleObject 等函数),它会检查自己的 APC 队列中是否有待处理的 APC,如果有,则会立即执行 APC 中指定的函数。 APC 机制的具体原理如下: 1. 创建 APC 对象 首先,创建一个 APC 对象,该对象包含要在目标线程上执行的函数和参数。 2. 将 APC 对象插入到目标线程的 APC 队列 使用 QueueUserAPC 函数将 APC 对象插入到目标线程的 APC 队列中。当目标线程进入 Alertable 状态时,它会检查自己的 APC 队列中是否有待处理的 APC,如果有,则会立即执行 APC 中指定的函数。 3. 触发目标线程进入 Alertable 状态 为了让目标线程进入 Alertable 状态,可以使用 Sleep、WaitForSingleObject 等函数来实现。当目标线程进入 Alertable 状态时,它会检查自己的 APC 队列中是否有待处理的 APC,如果有,则会立即执行 APC 中指定的函数。 总之,APC 机制是 Windows 操作系统中非常重要的一部分,它提供了一种有效的异步过程调用机制,可以在不阻塞目标线程的情况下异步执行指定的函数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值