প্রথমত, এটি কোনও উত্তর নয়, ডায়াগনস্টিক পদ্ধতির মতোই।
এটি কোনওভাবেই বিস্তৃত নয় - অথবা কাছাকাছি কিছু হলেও এটি কেবল একটি সূচনা পয়েন্ট।
টাইম টু ফার্স্ট বাইট
প্রথম বাইটের সময় (টিটিএফবি) এর বেশ কয়েকটি উপাদান রয়েছে:
- ডিএনএস চেহারা: ডোমেনের আইপি ঠিকানা সন্ধান করুন (সম্ভাব্য উন্নতি: আরও অসংখ্য / বিতরণ / প্রতিক্রিয়াশীল ডিএনএস সার্ভার)
- সংযোগের সময়: সার্ভারে একটি সকেট খুলুন, সংযোগটি নিয়ে আলোচনা করুন (আদর্শ মানটি 'পিং' সময়ের কাছাকাছি হওয়া উচিত - একটি রাউন্ড ট্রিপ সাধারণত প্রয়োজন হয় - পরবর্তী অনুরোধগুলির জন্য রক্ষণশীলকে সহায়তা করা উচিত)
- অপেক্ষারত: প্রথম বাইট প্রেরণের আগে প্রারম্ভিক প্রসেসিংটি প্রেরণ করা যেতে পারে (আপনার উন্নতিটি সেখানে হওয়া উচিত - এটি গতিশীল সামগ্রীর জন্য সর্বাধিক তাৎপর্যপূর্ণ হবে।
আপনি যখন অ্যাপাচিবেঞ্চ আউটপুটটি দেখেন, আপনি আরও দেখতে পারেন:
- প্রক্রিয়াজাতকরণ: এটি সামগ্রীর স্থানান্তর + সম্পূর্ণ স্থানান্তরের সমষ্টি (যদি স্থানান্তরের সময় প্রাপ্ত তথ্যের পরিমাণ ডাউনলোড করার প্রত্যাশার তুলনায় উল্লেখযোগ্যভাবে দীর্ঘ হয় তবে আরও প্রসেসিং (প্রথম বাইট প্রাপ্ত হওয়ার পরে) ঘটছে (যেমন পৃষ্ঠাটি এটি উপলব্ধ হিসাবে ফ্ল্যাশিং সামগ্রী)
উপাদানগুলি দূর করতে তুলনা
কিছু ব্যতিক্রম সহ, আপনার সমস্যা ব্যাকএন্ড প্রসেসিংয়ে পড়ে থাকতে পারে, যা সাধারণত অতিরিক্ত জটিল / অক্ষম কোডে নেমে আসে বা মাইএসকিউএল দুর্বল কনফিগার করা থাকে।
এই সমস্যাটির কাছে যাওয়ার জন্য একটি ভাল উপায় হ'ল একটি তুলনা যা আপনার সেটআপের বিভিন্ন দিককে সরিয়ে ফেলবে series একটি সমস্যা তুলনায় একটি ভাল তুলনা যতটা সম্ভব স্থির রাখা উচিত। বর্তমানে, আপনি নিম্নলিখিত তুলনা প্রদান করেছেন:
- পুরানো সার্ভার এবং নতুন সার্ভারে চলমান আইডেন্টিকাল (ক্লোনড) সাইট:
- পার্থক্য: সার্ভার
- ফলাফল: পুরানো সার্ভার দ্রুত; নতুন সার্ভার ধীর
- দ্রষ্টব্য: আপনার এখানে যা দরকার তা হ'ল এই সার্ভারগুলির মধ্যে পার্থক্যগুলি নির্ধারণ করা - উভয় ব্যবহৃত স্ট্যাক (এনগিনেক্স, ইত্যাদি) এবং হার্ডওয়্যার (পুরানো সার্ভারটি দ্রুত কারণ এটি আরও শক্তিশালী মেশিন?)
- উপসংহার: কোডটি ডান সেটআপে দ্রুত চালাতে সক্ষম হতে পারে
- নতুন সার্ভারে সম্পূর্ণ সাইট বনাম পরীক্ষার সাইট
- পার্থক্য: সামগ্রী, থিম, প্লাগইন ইত্যাদি
- ফলাফল: পরীক্ষার সাইটটি দ্রুত, সম্পূর্ণ সাইটটি ধীর
- নোটস: তাত্ত্বিকভাবে, এই পরীক্ষাটি আপনাকে আপনার সেটআপের অনেকগুলি দিক - ডিএনএস, নেটওয়ার্ক এমনকি আপনার এনজিনেক্স / পিএইচপি / মাইএসকিএল সেটআপকে সরিয়ে রাখতে সহায়তা করতে পারে - তবে এটি বেশ 'সুষ্ঠু' নয়।
- উপসংহার: অতিরিক্ত সামগ্রীটি পারফরম্যান্সে উল্লেখযোগ্য প্রভাব ফেলছে
আদর্শ পরীক্ষায় আপনি আপনার সম্পূর্ণ সাইটের সদৃশ করতে চান তবে তারপরে একটি নিবন্ধ এবং সম্পর্কিত মন্তব্য ব্যতীত সমস্ত সামগ্রী মুছুন। এই পরীক্ষার মূল বিষয়টি নির্ধারিতভাবে নির্ধারণ করা হবে যে যদি প্রচুর পরিমাণে সামগ্রী সমস্যা হয় বা আপনার সেটআপের অন্যান্য দিকগুলি (ওয়ার্ডপ্রেস প্লাগইনস, থিম ইত্যাদি) কারণ হয়। আপনি একইভাবে একই (নতুন) সার্ভারে অভিন্ন সাইটগুলির পারফরম্যান্সের তুলনা করতে পারবেন - একই পৃষ্ঠাটি লোড করা হচ্ছে (একই দৈর্ঘ্য, ইত্যাদি) - মোট পার্থক্যযুক্ত সাইটের একমাত্র পার্থক্য (যেমন একটি ভাল সম্ভাবনা রয়েছে যা কিছু প্লাগইন না করে বর্ধিত সামগ্রী সহ ভাল স্কেল)।
কিছু পরিবর্তন না করে, আপনি করতে পারেন এমন আরও কিছু তুলনা রয়েছে:
- স্থানীয় থেকে বনাম কোনও দূরবর্তী অবস্থান থেকে পরীক্ষা করা - এটি নেটওয়ার্ক, বিলম্ব, ডিএনএস ইত্যাদির কারণ কিনা তা সনাক্ত করতে সহায়তা করবে
- আপনি ইতিমধ্যে (কিছুটা) এটি করেছেন এবং বেশিরভাগ সিদ্ধান্তে এসেছেন যে আপনার নেটওয়ার্ক সমস্যা নেই।
- বার্নিশ (অর্থাত্ পোর্ট 80) বনাম এনগিনেক্সের মাধ্যমে সরাসরি পরীক্ষা (পোর্ট 8080) - পরীক্ষাগুলির মধ্যে আপনার কনফিগারেশনটি পরিবর্তন না করার চেষ্টা করুন - কেবল সঠিক পোর্টটি ব্যবহার করুন। এটি আপনাকে বার্নিশের প্রভাব প্রদর্শন করবে। ওয়ার্নিশ যেহেতু একটি ক্যাচিং স্তর, এটি প্রথমটির পরে খুব দ্রুত সমস্ত অনুরোধ পরিবেশন করা উচিত - মূলত, এটি গতিশীল পৃষ্ঠা উত্পন্ন করার জন্য প্রয়োজনীয় ব্যাকএন্ড এবং প্রসেসিং বাইপাস করা উচিত এবং ক্যাশেড অনুলিপিটি খুব দ্রুত পরিবেশন করা উচিত।
- আপনি এটি করেছেন (যদিও স্থানীয়ভাবে নয়) এবং প্রমাণ করেছেন যে ওয়ার্নিশ আপনার পারফরম্যান্সের উপর উল্লেখযোগ্য ইতিবাচক প্রভাব ফেলে।
আপনার ব্যাকএন্ড টিউন করছে
এই মুহুর্তে আপনি সমস্যাটি খুঁজে পেয়েছেন বা সিদ্ধান্তে উপনীত হওয়া উচিত ছিল যে এটি আপনার ব্যাকএন্ডে রয়েছে। এটি আপনাকে এনগিনেক্স, পিএইচপি, বা মাইএসকিউএল ছেড়ে দেয়।
(আমি এখানে উল্লেখ করা উচিত, এটা সবসময় আপনার বোতলের CPU- র, উপস্থিত RAM- র, বা I / O জানি কুশলী যে - মধ্যে sar
, top
, iostat
, vmstat
, free
।, ইত্যাদি এই কিছু উপসংহার আসতে সক্ষম হওয়া উচিত)
nginx
এনগিনেক্স কেবল অনুরোধ নিচ্ছে এবং হয় স্থিতিশীল বিষয়বস্তু পরিবেশন করছে বা অনুরোধগুলি পিএইচপি-এফপিএম-এ স্থানান্তর করছে - সাধারণত এনগিনেক্সের সাথে অনুকূল হওয়ার মতো খুব বেশি কিছু নেই isn't
- কর্মী সেট করুন = # সিপিইউ কোর
- ক্যাপালাইভ সক্ষম করুন (10-15 এর মান ভাল)
- অপ্রয়োজনীয় লগিং অক্ষম করুন
- প্রয়োজনে বাফার আকার বাড়ান
- বিবৃতিগুলি এড়িয়ে চলুন (যেখানে সম্ভব সেখানে রেজিক্সের পরিবর্তে স্থির নাম ব্যবহার করুন, বিনা শর্তযুক্ত এক্সটেনশনগুলি মুছে ফেলুন)
আদর্শভাবে, আপনার পরীক্ষা ব্লগ এবং ক্লোন করা ব্লগে অভিন্ন কনফিগারেশন রয়েছে, সেক্ষেত্রে আপনি কার্যকরভাবে সমস্যা হিসাবে Nginx কে মুছে ফেলেছেন।
আবেদন
আপনি যে ক্ষেত্রে আপনার কোডটিতে কোনও সমস্যা সনাক্ত করার চেষ্টা করছেন (উদাহরণস্বরূপ একটি ধীর প্লাগইন ইত্যাদি) ধীর লগগুলি শুরু করার জায়গা।
- মাইএসকিউএল স্লো লগ এবং পিএইচপি-এফপিএম স্লো লগ সক্ষম করুন আপনার মানদণ্ড চালান এবং দেখুন যে ধীর হয়ে আসছে।
মাইএসকিউএল
- একটি ভাল সূচনা পয়েন্ট পেতে আপনার ক্যাশে বাড়ান এবং mysqltuner.pl চালান ।
পিএইচপি
- অপ্রয়োজনীয় এক্সটেনশনগুলি অক্ষম করুন,
- নিবন্ধভুক্ত_গ্লোবালস, ম্যাজিক_কোটিস_ *, এক্সপোজ_এইচপিপি, নিবন্ধক_আরজিসি_আরজিভি, সর্বদা_ জনসমক্ষে_আর_পোস্ট_ডেটা অক্ষম করুন
- স্মৃতি_লিট বাড়িয়ে দিন
- ওপেন_বেসেডির এবং সেফ_মোডে উল্লেখযোগ্য পারফরম্যান্সের প্রভাব রয়েছে তবে প্রতিরক্ষা একটি অতিরিক্ত স্তরও সরবরাহ করতে পারে। পারফরম্যান্সে তাদের প্রভাব সহনীয় কিনা তা নির্ধারণ করার জন্য এবং তাদের সাথে পরীক্ষা করুন।
পিএইচপি-FPM
- বিকেল সামঞ্জস্য করুন। * মান - উচ্চ লোড মোকাবেলায় এগুলি বাড়ান increase
এটি লক্ষণীয় যে আপনার এইচটিপি ফলাফলগুলি পিপিএফ-এফপিএমকে সিপিইউয়ের বেশিরভাগ অংশ গ্রহণ করে দেখায় - এবং আপনার সমস্যা এটির সাথে সরাসরি সম্পর্কিত বলে মনে হয়।
ক্যাশিং
একবার আপনি প্রতিটি সম্ভাব্য বাধা অপটিমাইজ করার পরে, ক্যাচিং শুরু করুন।
- আপনার কাছে ইতিমধ্যে একটি অপকোড ক্যাশে (এপিসি) রয়েছে - এটি কাজ করছে কিনা তা নিশ্চিত করুন (এটি একটি পরীক্ষার ফাইলের সাথে আসে) - আপনার ক্যাশে হিট রেটগুলি পরীক্ষা করুন এবং যদি সম্ভব হয় তবে ডিস্কের পরিবর্তে এপিসি ক্যাশে মেমরিতে থাকে।
- আপনার কোডটি ক্যাশে সেট আপ করুন (যেমন ওয়ার্ডপ্রেসের জন্য প্লাগইন ব্যবহার করে যেমন ডাব্লু 3 টিসি)
- এনজিনেক্সের সাহায্যে আপনি ফাস্টসিজিআই ক্যাচিং সেটআপ করতে পারেন - তবে যেহেতু আপনার বার্নিশ রয়েছে তাই এটি সেরা এড়ানো যায়।
- ক্যাশিং স্তর স্থাপন করুন, যেমন বার্নিশ (যা আপনি ইতিমধ্যে সম্পন্ন করেছেন) - এবং এটি কাজ করছে কিনা তা নিশ্চিত করুন (যেমন বার্নিশস্ট্যাট ব্যবহার করুন, উচ্চতর হিট্রেট অর্জন করুন পড়ুন )
- আপনার সাইটের উপাদানগুলির জন্য আরও ক্যাচিং যুক্ত করুন - যেমন প্রযোজ্য ক্ষেত্রে মেমক্যাশ
কখনও কখনও, আপনার অ্যাপ্লিকেশন এবং হার্ডওয়্যার সীমাবদ্ধতা দেওয়া, আপনি ব্যাকএন্ডের কর্মক্ষমতা এতটুকু উন্নত করতে সক্ষম নাও হতে পারেন - তবে, এটিই ক্যাশিংয়ের বিষয় - ব্যাকএন্ডের ব্যবহারকে হ্রাস করতে।
আরও পড়া
if -f
আপনার ব্যবহারের দিকনির্দেশনার সাথে এটির কিছু থাকতে পারেlocation
। Wiki.nginx.org/Pitfalls এখানে আমি যা পড়ছি তার উপর ভিত্তি করে আমার অনুভূতি আছে যে-f
এটি ফাইলটির জন্য একটি অদক্ষ অনুসন্ধান করছে যা একটি টাইম টু ফার্স্ট বাইট সমস্যার কারণ হতে পারে, বিশেষত যদি আপনার প্রচুর সংখ্যক ডিরেক্টরি রয়েছে নথি পত্র.