Home Backend Development PHP Tutorial The pitfall of opcache in detecting file updates.bd sapi cache. The Chinese translation of cache is cache. How to pronounce cache?

The pitfall of opcache in detecting file updates.bd sapi cache. The Chinese translation of cache is cache. How to pronounce cache?

Jul 29, 2016 am 08:52 AM
cache

data-id="1190000004975909" data-licence="">

There was an online failure last night. After emergency processing and switching to disaster recovery, the failure was alleviated. After resolving the failure and switching back to the official service from disaster recovery, it was found that the PHP file update was invalid. After restarting FPM before it takes effect. The process of review and investigation is recorded below.

Because the PHP file update did not take effect, I immediately suspected opcache. I took a look at php.ini online and found that opcache was indeed used and the detection interval was set to 60 seconds. Looking at last night's log, the duration of the update not taking effect is much longer than 60 seconds, so this detection interval issue can be passed and we continue.

When I checked the updated files and the time in the log in the online environment, I suddenly found that the PHP file time did not correspond to the time in the log. I immediately asked the OP to confirm. The OP explained that this file was rolled back from the mv, so the file The time was not what I expected. I used the stat command to check, and sure enough, the modification time is a while earlier than the access time. Based on this clue, I speculate that opcache relies on the modification time of the PHP file as the detection condition for the file to be modified. The problem was reproduced offline and the pit was filled successfully!

The following summarizes some relevant knowledge points that were checked during the pit filling process

Loading opcache

When adding opcache in php.ini, you need to use zend_extension instead of extension, otherwise you will get the following WARNING

<code>PHP Warning:  PHP Startup: Invalid library (appears to be a Zend Extension, try loading using zend_extension=opcache.so from php.ini) in Unknown on line 0</code>
Copy after login

Configure opcache

Use the following recommended settings to get better performance:

<code>opcache.memory_c
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1</code>
Copy after login

There are two parameters involved this time

revalidate_freq, the default is 2
The period to check whether the script timestamp has been updated, in seconds. Setting it to 0 will cause OPcache to check for script updates for each request

validate_timestamps, the default is 1
If enabled, OPcache will check whether the script has been updated every seconds set by opcache.revalidate_freq. If this option is disabled, you must manually reset OPcache using the opcache_reset() or opcache_invalidate() functions, or restart the web server for file system changes to take effect.

System command and function stat

access time represents the last time we accessed the file
modify time represents the last time we modified the file
change time represents the last time we changed the file attributes, including permissions, size, attributes Wait

You can also use the stat method in C/C++ to query these three time attributes of the file. Generally, applications will use modify time to determine whether the file is updated. The reason why we are in trouble this time is because the file is operated by mv and the modity time is not updated. , so opcache is not updated.

The above has introduced the small pitfalls of opcache's detection of file updates, including cache content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1266
29
C# Tutorial
1239
24
After joining the company, I understood what Cache is After joining the company, I understood what Cache is Jul 31, 2023 pm 04:03 PM

The thing is actually like this. At that time, my leader gave me a perf hardware performance monitoring task. During the process of using perf, I entered the command perf list and I saw the following information: My task is to enable these cache events to be counted normally. But the point is, I have no idea what these misses and loads mean.

Why does using cache increase computer speed? Why does using cache increase computer speed? Dec 09, 2020 am 11:28 AM

Using the cache can increase the speed of the computer because the cache shortens the waiting time of the CPU. Cache is a small but high-speed memory located between the CPU and the main memory DRAM. The function of Cache is to increase the rate of CPU data input and output; Cache has a small capacity but fast speed, while the memory speed is low but has a large capacity. By optimizing the scheduling algorithm, the performance of the system will be greatly improved.

What are the characteristics of cache, rom and ram? What are the characteristics of cache, rom and ram? Aug 26, 2022 pm 04:05 PM

Characteristics of cache: A one- or two-level high-speed, small-capacity memory set between the CPU and the main memory. The information is naturally lost when the computer is powered off. Characteristics of ROM: it can only read data from the memory, but cannot write information into it. The data will still exist after the computer is powered off. Characteristics of ram: it can read data from the memory and write information to the memory; it is used to store commands, programs and data required to run the program; information is naturally lost when the computer is powered off.

nginx reverse proxy caching tutorial. nginx reverse proxy caching tutorial. Feb 18, 2024 pm 04:48 PM

Here is the tutorial for nginx reverse proxy caching: Install nginx: sudoaptupdatesudoaptinstallnginx Configure reverse proxy: Open nginx configuration file: sudonano/etc/nginx/nginx.conf Add the following configuration in the http block to enable caching: http{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache

How to use cache in SpringBoot project How to use cache in SpringBoot project May 16, 2023 pm 02:34 PM

Preface Caching can effectively improve system performance and stability by storing frequently accessed data in memory, reducing the pressure on underlying data sources such as databases. I think everyone has used it more or less in their projects, and our project is no exception. However, when I was reviewing the company's code recently, the writing was very stupid and low. The rough writing is as follows: publicUsergetById(Stringid){Useruser=cache. getUser();if(user!=null){returnuser;}//Get user from the database=loadFromDB(id);cahce.put(id,user);returnu

What is cache? What is cache? Nov 25, 2022 am 11:48 AM

Cache is called cache memory. It is a high-speed small-capacity memory between the central processing unit and the main memory. It is generally composed of high-speed SRAM. This kind of local memory is oriented to the CPU. It is introduced to reduce or eliminate the gap between the CPU and the memory. The impact of the speed difference between them on system performance. Cache capacity is small but fast, memory speed is low but capacity is large. By optimizing the scheduling algorithm, the performance of the system will be greatly improved.

Nginx Cache configuration plan and how to solve related memory usage problems Nginx Cache configuration plan and how to solve related memory usage problems May 23, 2023 pm 02:01 PM

5 options for nginx caching cache 1. One of the traditional caches (404) This method is to direct the 404 error of nginx to the backend, and then use proxy_store to save the page returned by the backend. Configuration: location/{root/home/html/;#Home directory expires1d;#Expiration time of the web page error_page404=200/fetch$request_uri;#404 ​​directed to the /fetch directory} Location/fetch/{#404 directed here internal ;#Indicates that this directory cannot be directly accessed externally

How to implement Caffeine+Redis second-level cache based on Spring Cache How to implement Caffeine+Redis second-level cache based on Spring Cache Jun 01, 2023 am 10:13 AM

The details are as follows: 1. Let’s talk about what is hard-coded cache? Before learning SpringCache, I often used caching in a hard-coded way. Let's take a practical example. In order to improve the query efficiency of user information, we use caching for user information. The sample code is as follows: @AutowireprivateUserMapperuserMapper; @AutowireprivateRedisCacheredisCache;//Query users publicUsergetUserById(LonguserId){//Define cache keyStringcacheKey= "userId_

See all articles