|
APC是什么
PHP APC提供两种缓存功能,即缓存Opcode(目标文件),我们称之为apc_compiler_cache。同时它还提供一些接口用于PHP开发人员将用户数据驻留在内存中,我们称之为apc_user_cache。我们这里主要控讨php-apc的配置。 作为测试环境,我们这里使用的是CentOS5.3(2.6.18-128.el5PAE) + Apache2.0(prefork) + php5.2。我们可以去pecl apc下载APC-3.0.19.tgz # tar -xzvf APC-3.0.19.tgz#cd APC-3.0.19 # /usr/bin/phpize # ./configure --enable-apc --enable-mmap --enable-apc-spinlocks --disable-apc-pthreadmutex #make #make install
注意:我们这里支持mmap,同时采用spinlocks自旋锁。Spinlocks是Facebook推荐使用,同时也是APC开发者推荐使用的锁机制。 如果你使用的系统环境跟我的测试环境是一样的话,可以在/etc/php.d目录下创建文件apc.ini,并且相关配置写入/etc/php.d/apc.ini文件。这里,我们挑了一些常用到的配置,并进行探讨。把相关的配置放在一起解释。
apc.enabled=1
apc.shm_segments = 1 <?php //@file: apc_load.php if (!extension_loaded('apc')) { dl('apc.so'); #加载apc.so模块 echo posix_getpid(); #//输出当前进程的pid,我这里这里输出的是14735 ob_flush(); flush(); sleep(3600); #让进程进入休眠状态.这样,我们可以观察内存分配情况 } ?> #strace -p `cat /var/run/httpd.pid` open("/var/www/html/apc_load.php", O_RDONLY) = 13 ... mmap2(NULL, 31457280, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0) = 0xb5ce7000 ... nanosleep({3600, 0},
红色部分,我们可以看出。通过mmap系统内核调用分配了30M(31457280/1024/1024)内存空间。PROT_READ|PROT_WRITE表示该内存空间可供读取与写入。MAP_SHARED表示该内存空间与其它进程是共享的,即其它进程也可以进行读取与写入,我们可以通过apc.php进行管理该块内存空间亦是受益于此设定。MAP_ANONYMOUS则表示匿名映射。其中fd=-1表示忽略,因为这里映射的特殊设备/dev/zero。最后的0表示无偏移量。我们还可以通过进程映像文件查看该块内存的具体情况 Size: 30720 kB Rss: 44 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 44 kB 可以很容易地发现起始地址0xb5ce7000与上面mmap系统内核调用返回的地址一样。该块内存是可读写rw,并与其它进程共享s。而/dev/zero则是映射文件,该文件节点是633695。其中,size表示进程可以使用的内存空间,而rss则表示实际分配的内存空间,且由Private_Dirty可以看出,实际分配的44kb内存是由当前进程自己分配的。
apc.num_files_hint = 1000
apc.stat = 1 <?php define('ROOTP', dirname(__FILE__) . '/'); include(ROOTP . 'i1.php'); require(ROOTP . 'i2.php'); include_once(ROOTP . 'i3.php'); require_once(ROOTP . 'i4.php'); require(ROOTP . 'i5.php'); include(ROOTP . 'i6.php'); ?> # strace -e trace=file -p `cat /var/run/httpd.pid` getcwd("/var/www/html", 4096) = 14 stat64("/var/www/html/i1.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 stat64("/var/www/html/i2.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/var/www/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/var/www/html/i3.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 open("/var/www/html/i3.php", O_RDONLY) = 12 stat64("/var/www/html/i3.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/var/www/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/var/www/html/i4.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 open("/var/www/html/i4.php", O_RDONLY) = 12 stat64("/var/www/html/i4.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 stat64("/var/www/html/i5.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 stat64("/var/www/html/i6.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0 chdir("/tmp") = 0 # strace -e trace=file -p `cat /var/run/httpd.pid` getcwd("/var/www/html", 4096) = 14 open("/var/www/html/i3.php", O_RDONLY) = 12 open("/var/www/html/i4.php", O_RDONLY) = 12 chdir("/tmp") = 0 对比可见,当apc.stat=0时,省了很多系统内核调用,我们没有看到系统内核调用stat64了。其中,i3.php和i4.php分别是php的include_once和require_once函数调用,它要交给fstat()系统内核调用来检查文件是否打开过。单从性能角度出发的话,require比require_once性能更佳。 设置apc.stat_ctime的意义并是很大。如果apc.stat_ctime值为1时,仅当php源文件的创建时间(ctime)大于php源文件的最后修改时间(mtime)时,缓存对象的mtime时间会被php源文件的ctime所代替,否则缓存对象的mtime依然记录为php源文件的mtime。这样做是防止通过cvs, svn或者rsync等工具刷新php源文件的mtime,这样会导致APC通过比对php源文件的创建时间ctime来决定缓存对象有没有过期。我们推荐该保持默认值,即apc.stat_ctime = 0
apc.ttl=0
apc.slam_defense=0
apc.max_file_size=1M
1,使用Spinlocks锁机制,能够达到最佳性能。
9.APC模块的发言。作为APC的作者,他的见解应该是非常有参考价值的。 |
相关推荐
Linux下PHP加速器APC的安装与配置指南
在本篇文章中,我们将介绍如何在Linux系统上安装和配置PHP加速器APC(Alternative PHP Cache)。APC是一个开源的PHP扩展,旨在提高PHP应用程序的性能和响应速度。通过将常用的PHP脚本缓存到共享内存中,APC可以显著减少PHP解释器的执行时间,从而提高网站的性能。通过正确安装和配置APC,您可以提高您的PHP应用程序的性能和响应速度。在Web浏览器中访问apc_test.php文件,例如:http://localhost/apc_test.php。步骤 3:验证APC安装。
php加速 PHP APC 浅析
<br /><br />PHP APC提供两种缓存功能,即缓存Opcode(目标文件),我们称之为apc_compiler_cache。同时它还提供一些接口用于PHP开发人员将用户数据驻留在内存中,我们称之为apc_user_cache。我们这里主要控讨php-apc的配置。安装PHP APC<br />作为测试环境,我们这里使用的是CentOS5.3(2.6.18-128.el5PAE) + Apache2.0(prefork) + php5.2。我们可以去pecl apc下载APC-3.0.19.tgz
phpPACS-开源
phpPACS(php 门户和内容管理系统)是(将是)一个基于 php 的类似门户网页的内容管理系统。 核心思想是尽可能模块化地构建整个系统。
二进制文件浏览器
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:李德彪*完成时间:2016年6月23日 *版 本 号:v1.0 * *问题描述:项目-二进制文件浏览器。 *输入描述:文件名。 *程序输出:字符输出。 */ #include #include #include #include
H3C VRF实验
POP-vpn-instance-RT1]route-distinguisher 11:11 # VPN实例-RT1的路由区分器值11:11。配置路由泄露,其实就是在一个VPN示例中添加另一个VPN实例的下一跳,比如在VPN实例RT1中添加去往SRV的默认路由。但是也有了一个新的问题,那就是RT1、RT2和RT3也能互访了,这让VPN实例变得没有意义了。[POP]ip vpn-instance RT1 #配置vpn实例-RT1。绑定了VPN实例,所以要把路由添加到VPN实例POP中。
ESP32-CAM+STM32实战:5步搞定无线图像传输到TFT屏(附完整代码)
本文详细介绍了如何利用ESP32-CAM和STM32实现无线图像传输到TFT屏幕的完整方案。通过5个关键步骤,包括硬件连接、ESP32-CAM配置、STM32数据接收、TFT屏幕驱动及系统优化,开发者可以快速构建高效的图像传输系统。特别介绍了RGB565格式的处理技巧,并提供了完整的代码实现,适用于智能家居、工业监控等多种应用场景。
PHP之APC缓存详细介绍(学习整理)
1、APC缓存简介 APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。 系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存 3600s(一小时)。但是这样仍会浪费大量
硬核拆解华为/大疆/小米硬件面试真题:手撕电路+考点思维导图(附答案)
设计一个增益为20dB、带宽≥100kHz的同相放大器,电源电压±5V,要求输出摆幅≥8V。12位ADC的参考电压2.5V,输入信号1kHz正弦波,峰峰值2V。输入24V转5V/10A的同步降压电路,开关频率500kHz,计算MOSFET的损耗并选择型号(需提供TI官网截图)。设计无人机图传系统,要求1080P@30fps,传输距离2km。FPGA设计中,100MHz时钟域到50MHz时钟域传输32位数据,给出同步方案并画时序图。“设计一个输入12V、输出5V/3A的同步降压电路,给出关键参数计算”
apc php安装,PHP APC的安装与使用详解
一、PHPAPC安装下载与解压安装包:wget-c http://pecl.php.net/get/APC-3.1.13.tgztar-zvxf APC-3.1.13.tgzcdAPC-3.1.13编译安装:wget-c http://pecl.php.net/get/APC-3.1.13.tgz/usr/local/php/bin/phpize./configure--enable-apc --...
Chkdsk误删文件?5步教你从FOUND.000文件夹找回重要数据(附工具推荐)
本文详细介绍了当Chkdsk误删文件后,如何从FOUND.000文件夹中找回重要数据的5个步骤。包括理解Chkdsk与FOUND.000的关系、定位与访问FOUND.000文件夹、手动恢复CHK文件的技巧、使用UnCHK工具自动化恢复以及预防数据丢失的关键措施。适用于Windows用户解决数据丢失问题,特别是NTFS文件系统下的文件恢复。
信贷审批中的那些坑:从零开始搭建风控策略体系的5个关键步骤
本文深入探讨了信贷审批中的风控策略体系搭建,从数据陷阱识别、规则冲突诊断到反欺诈攻防,提供了5个关键步骤的实战指南。重点解析了如何通过特征工程、决策树优化和模型可解释性技术,构建动态平衡的风控体系,有效降低逾期风险并提升审批效率。
apc php安装,php安装加速扩展 APC 详解
APC是什么AlternativePHPCache (APC)是一种对PHP有效的开放源高速缓冲储存器工具,他能够缓存opcode的php中间码。PHPAPC提供两种缓存功能,即缓存Opcode(目标文件),我们称之为apc_compiler_cache。同时它还提供一些接口用于PHP开发人员将用户数据驻留在内存中,我们称之为apc_user_cache。安装PHP APCcd/home/myap...
群晖、飞牛NAS容器进入终端失败?一步步教你解决Docker Bash错误!(OCI runtime exec failed: exec failed)
群晖、飞牛NAS容器进入终端失败?一步步教你解决Docker Bash错误!(OCI runtime exec failed: exec failed)
关于PHP加速eAccelerator、APC和Zend Optimizer
<br />安装哪一个呢?对性能会有什么影响呢?有时间要测试一下。<br />从别处看来的。<br />程序环境非必要Zend Optimizer的情况下,首选pecl-APC(它和Zend Optimizer不兼容)。<br /> 总结:<br /> 1.PHP缓冲(加速)首选pecl-APC,兼容性和性能表现都非常优秀。<br /> 2.如果你的PHP环境需要Zend Optimizer,就安装eAccelerator,并把Zend Optimizer的压缩级别调到0。<br />zend opt
ARINC429协议分析
如下表所示,ARINC429在发送一帧过程中,首先发送以START开始,以END结束,共发送32bits数据,其中0~7bits为Lable数据,9~8bits为SDI数据,10~28bits为数据,29~30bits为SSM,31bit为校验位End30292827262524校验位SSM2322212019181716DATA15141312111098SDI7654321Start。
2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)
2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)
使用APC加速PHP
原文地址:http://devzone.zend.com/1812/using-apc-with-php/ Cache Cow 缓存牛(原文Cache Cow,醉了,第一个词就不知道几个意思,只能直译了) If you’ve been around PHP for a while, you’ve probably heard about APC, the Alternativ
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
PHP加速器APC
大流量站点推荐使用稳定性更好的APC加速缓存 APC 和 eAccelerator 都是不错的PHP加速缓存,但是为什么在这里要推荐使用 APC 而不是 eAccelerator 呢? 1,根据我们对几个大站点的测试,虽然 eAccelerator 在低负载下,性能要比 APC 好点,但是在大流量长期运行的情况下,APC 要比 eAccelerator 要更为稳定。我们推荐出现了 PHP 突然
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
ubuntu php 加速器 APC安装 整理
转载自:http://hi.baidu.com/flyerzsk/item/da87c21387bd030db98a1ab1 安裝需要的 PHP 套件 sudo apt-get install php-pear php5-dev 安装Perl套件 sudo pecl install uploadprogress 下面两种方法安装APC: 一: 直接 sudo ap
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
PHP中加速、缓存扩展的区别及用法整理
HP中有eAccelerator、memcached、xcache、APC 4个加速、缓存扩展,下面给大家介绍下其区别,一起看看吧! 折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有 eAccelerator、memcached、xcache、Alternative PHP Cache这几个缓存扩展,它们之间有什么区别?分别的作用又是什么?我们如何选择?这是本文给于大家的答案。 1、eAccelerator eAccelera
PHP加速器:APC、eAccelerator、XCache比较
三款免费的PHP加速器:APC、eAccelerator、XCache比较 一、PHP加速器介绍 PHP加速器是一个为了提高PHP执行效率,从而缓存起PHP的操作码,这样PHP后面执行就不用解析转换了,可以直接调用PHP操作码,这样速度上就提 高了不少。 Apache中使用mod_php的请求、响应执行流程: 1、Apache接收请求。 2、Apache传递请求
371



被折叠的 条评论
为什么被折叠?



