পিএইচপি 5.5 প্রকাশিত হয়েছে এবং এটিতে একটি নতুন কোড ক্যাশিং মডিউল রয়েছে যা ওপচ্যাশ নামে পরিচিত, তবে এটির জন্য কোনও ডকুমেন্টেশন আছে বলে মনে হয় না।
সুতরাং এটির জন্য ডকুমেন্টেশন কোথায় এবং আমি কীভাবে ওপচী ব্যবহার করব?
পিএইচপি 5.5 প্রকাশিত হয়েছে এবং এটিতে একটি নতুন কোড ক্যাশিং মডিউল রয়েছে যা ওপচ্যাশ নামে পরিচিত, তবে এটির জন্য কোনও ডকুমেন্টেশন আছে বলে মনে হয় না।
সুতরাং এটির জন্য ডকুমেন্টেশন কোথায় এবং আমি কীভাবে ওপচী ব্যবহার করব?
উত্তর:
OpCache PHP5.5 + এ ডিফল্টরূপে সংকলিত হয়েছে। তবে এটি ডিফল্টরূপে অক্ষম। PHP5.5 + এ OpCache ব্যবহার শুরু করার জন্য আপনাকে প্রথমে এটি সক্ষম করতে হবে। এটি করার জন্য আপনাকে নিম্নলিখিতগুলি করতে হবে।
আপনার সাথে নিম্নলিখিত লাইনটি যুক্ত করুন php.ini
:
zend_extension=/full/path/to/opcache.so (nix)
zend_extension=C:\path\to\php_opcache.dll (win)
মনে রাখবেন যে যখন পাথটিতে ফাঁকা স্থান রয়েছে তখন আপনার এটিকে উদ্ধৃতিতে আবদ্ধ করা উচিত:
zend_extension="C:\Program Files\PHP5.5\ext\php_opcache.dll"
এছাড়াও নোট করুন যে আপনাকে zend_extension
"স্বাভাবিক" extension
নির্দেশের পরিবর্তে নির্দেশিকাটি ব্যবহার করতে হবে কারণ এটি আসল জেন্ড ইঞ্জিনকে (অর্থাৎ পিএইচপি চালায় এমন জিনিস) প্রভাবিত করে।
বর্তমানে চারটি ফাংশন রয়েছে যা আপনি ব্যবহার করতে পারেন:
opcache_get_configuration()
:বর্তমানে ব্যবহৃত কনফিগারেশন OpCache ব্যবহার করে এমন একটি অ্যারে ফেরত দেয়। এতে সমস্ত আইআই সেটিংসের পাশাপাশি সংস্করণ তথ্য এবং কালো তালিকাভুক্ত ফাইল অন্তর্ভুক্ত রয়েছে।
var_dump(opcache_get_configuration());
opcache_get_status()
:এটি ক্যাশের বর্তমান অবস্থান সম্পর্কে তথ্য সহ একটি অ্যারে ফিরিয়ে দেবে। এই তথ্যের মধ্যে এমন জিনিসগুলি অন্তর্ভুক্ত থাকবে: যেমন ক্যাশে থাকা অবস্থায় রয়েছে (সক্ষম, পুনরায় চালু করা, পূর্ণ ইত্যাদি), মেমরির ব্যবহার, হিট, মিস এবং আরও কিছু দরকারী তথ্য। এটিতে ক্যাশেড স্ক্রিপ্টগুলিও থাকবে।
var_dump(opcache_get_status());
opcache_reset()
:পুরো ক্যাশে পুনরায় সেট করুন। অর্থাত্ সম্ভাব্য সমস্ত ক্যাশেড স্ক্রিপ্টগুলি পরের দর্শনে আবার পার্স করা হবে।
opcache_reset();
opcache_invalidate()
:একটি নির্দিষ্ট ক্যাশে স্ক্রিপ্ট অবৈধ। মানে স্ক্রিপ্টটি পরের দফায় আবার পার্স করা হবে।
opcache_invalidate('/path/to/script/to/invalidate.php', true);
অপসিচে রক্ষণাবেক্ষণ এবং দরকারী প্রতিবেদন তৈরিতে সহায়তা করার জন্য কিছু জিইউআই তৈরি করা হয়েছে। এই সরঞ্জামগুলি উপরের ফাংশনগুলি লাভ করে।
OpCacheGUI
দাবি অস্বীকার আমি এই প্রকল্পের লেখক
বৈশিষ্ট্য:
স্ক্রীনশট:
URL: https://github.com/PeeHaa/OpCacheGUI
opcache-স্থিতিটি
বৈশিষ্ট্য:
স্ক্রীনশট:
ইউআরএল: https://github.com/rlerdorf/opcache-status
opcache-GUI
বৈশিষ্ট্য:
স্ক্রীনশট:
যেহেতু ওপচাচি এপিসি মডিউলটি প্রতিস্থাপনের জন্য ডিজাইন করা হয়েছে, পিএইচপি-তে সমান্তরালে এগুলি চালানো সম্ভব নয়। পিএইচপি অপকোডের ক্যাশে দেওয়ার জন্য এটি সূক্ষ্ম কারণ আপনি কোডটি কীভাবে লেখেন তা প্রভাবিত করে না।
তবে এর অর্থ হ'ল আপনি যদি বর্তমানে অন্যান্য ডেটা সঞ্চয় করার জন্য এপিসি ব্যবহার করছেন ( apc_store()
ফাংশনের মাধ্যমে ) আপনি ওপিসিচ ব্যবহার করার সিদ্ধান্ত নিলে আপনি তা করতে সক্ষম হবেন না।
হয় আপনি যেমন অন্য গ্রন্থাগার যেমন ব্যবহার করতে হবে APCu বা Yac যা উভয় দোকান ভাগ পিএইচপি মেমরি কিছু ব্যবহার memcached মত মেমরি পিএইচপি করার জন্য একটি পৃথক প্রক্রিয়ায় ডেটা, বা সুইচ, যা সঞ্চয় তথ্য।
এছাড়াও, এপিসিতে আপলোড প্রগতি মিটারের সমপরিমান ওপ্যাচে নেই। পরিবর্তে আপনার সেশন আপলোড অগ্রগতি ব্যবহার করা উচিত ।
ওপচে ক্যাশের ডকুমেন্টেশন এখানে তালিকাভুক্ত সমস্ত কনফিগারেশন বিকল্পের সাথে পাওয়া যাবে । প্রস্তাবিত সেটিংস হ'ল:
; Sets how much memory to use
opcache.memory_consumption=128
;Sets how much memory should be used by OPcache for storing internal strings
;(e.g. classnames and the files they are contained in)
opcache.interned_strings_buffer=8
; The maximum number of files OPcache will cache
opcache.max_accelerated_files=4000
;How often (in seconds) to check file timestamps for changes to the shared
;memory storage allocation.
opcache.revalidate_freq=60
;If enabled, a fast shutdown sequence is used for the accelerated code
;The fast shutdown sequence doesn't free each allocated block, but lets
;the Zend Engine Memory Manager do the work.
opcache.fast_shutdown=1
;Enables the OPcache for the CLI version of PHP.
opcache.enable_cli=1
আপনি যদি এমন কোনও লাইব্রেরি বা কোড ব্যবহার করেন যা কোড টীকা ব্যবহার করে তবে আপনাকে অবশ্যই মন্তব্যগুলি সংরক্ষণ করতে সক্ষম করবেন:
opcache.save_comments=1
যদি অক্ষম থাকে, সমস্ত পিএইচপিডক মন্তব্যগুলি অনুকূলিত কোডের আকার হ্রাস করার জন্য কোড থেকে বাদ দেওয়া হয়। "ডক মন্তব্য" অক্ষম করা কিছু বিদ্যমান অ্যাপ্লিকেশন এবং ফ্রেমওয়ার্কগুলি ভেঙে ফেলতে পারে (উদাঃ মতবাদ, জেডএফ 2, পিএইচপিউনিট)
আমি ওপচে যা ব্যবহার করি তার জন্য আমি আমার দুটি সেন্টে ফেলে যাচ্ছি।
আমি আমার ডাটাবেসে কথা বলতে সক্ষম হতে প্রচুর ক্ষেত্র এবং বৈধতা পদ্ধতি এবং এনামগুলি নিয়ে একটি বিস্তৃত কাঠামো তৈরি করেছি।
ওপচা ছাড়া
এই স্ক্রিপ্টটি ওপচা ছাড়াই ব্যবহার করার সময় এবং আমি অ্যাপাচি সার্ভারে 9000 অনুরোধগুলিকে 2.8 সেকেন্ডের মধ্যে ধাক্কা দিয়ে 70-80 সেকেন্ডের জন্য 90-100% সিপিইউতে সর্বাধিক আউট হয়ে যায় যতক্ষণ না এটি সমস্ত অনুরোধগুলি ধরে না যায়।
Total time taken: 76085 milliseconds(76 seconds)
ওপচা সক্ষম করা হয়েছে
ওপ্যাচে সক্ষম করার সাথে এটি প্রায় 25 সেকেন্ডের জন্য 25-30% সিপিইউ সময়ে চালিত হয় এবং 25% সিপিইউ ব্যবহারটি কখনই পাস করে না।
Total time taken: 26490 milliseconds(26 seconds)
আমি ফ্রেমওয়ার্ক যা সমস্ত স্ট্যাটিক এবং কার্যকারিতা পরিবর্তনের প্রয়োজন হয় না তা বাদ দিয়ে সমস্ত কিছুর ক্যাচিং অক্ষম করার জন্য আমি একটি ওপচাচি ব্ল্যাকলিস্ট ফাইল তৈরি করেছি। আমি কেবল ফ্রেমওয়ার্ক ফাইলগুলির জন্য স্পষ্টভাবে নির্বাচন করি যাতে ক্যাশে ফাইলগুলি পুনরায় লোড / বৈধকরণের বিষয়ে চিন্তা না করে আমি বিকাশ করতে পারি। সমস্ত কিছু ক্যাশে করা মোট অনুরোধের এক সেকেন্ড সাশ্রয় করে25546 milliseconds
এটি সার্ভার এমনকি ঘাম ভেঙে না দিয়ে আমি প্রতি সেকেন্ডে যে পরিমাণ ডেটা / অনুরোধগুলি পরিচালনা করতে পারি তা উল্লেখযোগ্যভাবে প্রসারিত করে।
zend_extension=php_opcache.dll; opcache.memory_consumption=128; opcache.interned_strings_buffer=8; opcache.max_accelerated_files=4000; opcache.revalidate_freq=60; opcache.fast_shutdown=1; opcache.enable_cli=1; opcache.blacklist_filename="C:\xampp\php\cfg\opcache.blacklist;
শুধু প্রতিস্থাপন; ini ফাইল এন্ট্রি সহ। তবে এটি আমি ব্যবহার করি। বেশিরভাগ ডিফল্ট স্টাফ
opcache.revalidate_freq=60;
কতক্ষণ সেকেন্ডের মধ্যে কোনও ফাইল স্মৃতিতে বেঁচে থাকতে পারে তা নির্ধারণ করে। সময় শেষ হলে এটি ফাইলটি পুনরায় সংশোধন করে।
opcache.revalidate_freq
কোনও স্ক্রিপ্ট কতবার পরিবর্তনের জন্য পরীক্ষা করা হয় (তার টাইমস্ট্যাম্প পরিবর্তন হয়েছে কিনা তার উপর ভিত্তি করে) নিয়ন্ত্রণ করে। সুতরাং যদি কোনও স্ক্রিপ্টের টাইমস্ট্যাম্পটি শেষ বার সংকলিত হওয়ার সময় একই থাকে, তবে এটি পুনরায় সংকলিত হবে না। এগুলি সমস্তই ধরে নিচ্ছে যে আপনি opcache.validate_timestamps
সেটিংস পরিবর্তন করেন নি, যা ডিফল্টরূপে সক্ষম করা হয়েছে।
মুডল সেট আপ করার সময় আমি এটির মুখোমুখি হয়েছি। আমি php.ini ফাইলটিতে নিম্নলিখিত লাইনগুলি যুক্ত করেছি।
zend_extension=C:\xampp\php\ext\php_opcache.dll
[opcache]
opcache.enable = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
; Required for Moodle
opcache.use_cwd = 1
opcache.validate_timestamps = 1
opcache.save_comments = 1
opcache.enable_file_override = 0
; If something does not work in Moodle
;opcache.revalidate_path = 1 ; May fix problems with include paths
;opcache.mmap_base = 0x20000000 ; (Windows only) fix OPcache crashes with event id 487
; Experimental for Moodle 2.6 and later
;opcache.fast_shutdown = 1
;opcache.enable_cli = 1 ; Speeds up CLI cron
;opcache.load_comments = 0 ; May lower memory use, might not be compatible with add-ons and other apps
extension=C:\xampp\php\ext\php_intl.dll
[intl]
intl.default_locale = en_utf8
intl.error_level = E_WARNING
opcache.fast_shutdown = 0
github.com/zendtech/ZendOptimizerPlus/issues/146