এত গেটটাইমডে কল কেন?


11

পিএইচপি / অ্যাপাচি কম্বো কেন এত বেশি gettimeofdayস্কেল করে? যদিও চটজলদি প্রতিটি কলই এমন একটি কল যা তার জন্য অ্যাকাউন্ট করা উচিত।

মাত্র একটি দ্রুত strace -c -p [apache2 process id], নিম্নলিখিত দেয়:

Process 22294 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 98.52    0.010000          51       196           poll
  1.48    0.000150           0     20752           gettimeofday
  0.00    0.000000           0        94         7 read
  0.00    0.000000           0        48           write
  0.00    0.000000           0        96        32 open
  0.00    0.000000           0        75           close
  0.00    0.000000           0         6           chdir
  0.00    0.000000           0       766           time
  0.00    0.000000           0         2           chmod
  0.00    0.000000           0        56        10 access

20 কে এই কলগুলি আমাকে চিন্তিত করে। কেউ কি এ সম্পর্কে কিছু আলোকপাত করার চিন্তা করে?


জাভা এমনকি খারাপ ...
নিলস

আপনার প্রোগ্রাম কি করছে?
মাইকেল হ্যাম্পটন

1
আমি "কেন" উত্তর দিতে পারছি না কিন্তু আপনি সচেতন stackoverflow.com/questions/7266813/... এবং access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_MRG/... ? সিস্কলটি সাধারণত ব্যবহারকারী স্পেস কোডে ম্যাপ করা হত ("ভার্সিস্যাকাল") যাতে ওভারহেড উল্লেখযোগ্যভাবে হ্রাস পাবে।
The-wabbit

1
গণনা আপনাকে চিন্তিত করা উচিত নয়। পোলে মাত্র 200 টি কল রয়েছে তবে এটি 98% এরও বেশি সময় ব্যবহার করে। আপনি সাধারণ স্ট্রেস আউটপুটটিতে স্যুইচ করতে পারেন, তারপরে আপনি দেখবেন আপাচি কী করছে (এটি একেবারে কমিয়ে দেবে)।
অট--

উত্তর:


4

গেটটাইমডেডি প্রায়শই আবাচে ডাবগ-ফাইলগুলিতে প্রবেশের লগগুলিতে ডাকা হয়। এছাড়াও কিছু মডিউল গেটটাইম ডে ব্যবহার করে। তাই চিন্তার কিছু নেই nothing

সম্পাদনা: আমি কিছু পিএইচপি উত্স কোড খনন করেছি এবং নিম্নলিখিত ফলাফল নিয়ে এসেছি: বেশিরভাগ সময় সম্পর্কিত পিএইচপি ফাংশন সিস্টেম সময় ব্যবহার করবে। যেহেতু তারা সিস্টেমের সময় ব্যবহার করে, তাই গেটটাইমডেয়েডকে প্রচুর পরিমাণে ডাকা হবে যদি আপনি কলগুলি হ্রাস করতে চান, আপনার সময় সম্পর্কিত ফাংশনগুলি হ্রাস করতে চান।

অন্যান্য মন্তব্যগুলি গেটটাইম-ডে-কল করার পরেও আমাকে মন্তব্য করতে হবে। উদাহরণস্বরূপ আপনি যদি পিএইচপি_অ্যাসিওন_স্টার্ট ব্যবহার করেন তবে এটি (কখনও কখনও কয়েকটি পরামিতি যেমন নতুন সেশন, ...) কে ডেকে আনবে যা পিএইচপি_কোম্বাইনে_এলসিগিতে কল করবে যা তার পরিবর্তে lcg_seed এ কল করবে যদি সেখানে কোন বীজের মান সেট না করা থাকে if একটি ছদ্ম র্যান্ডম নম্বর পান। এবং lcg_seed একটি গেটটাইমডে কল করবে। এটি মাথায় রাখুন।


কিন্তু কি যদি আমার CLI পিএইচপি স্ক্রিপ্ট এছাড়াও আছে দর্শন gettimeofday কল? আমার পিএইচপি তে কিছু ভুল আছে? (যেমন, তারিখ () বা এমকিটাইম () যদি আমি পরম হিসাবে কোনও টাইমস্ট্যাম্প সরবরাহ না করি তবে এই ফাংশনগুলি ব্যবহার করে?)
গেককি

কিছুটা অনুসন্ধান করে আমার উত্তরটি সম্পাদনা করেছেন
টিমেমেহ

ধন্যবাদ ... আমি অনুমান করি আমাকে কেবল এই সমস্ত কলগুলির সাথেই বাঁচতে হবে। :)
গেককি

আপনি যদি xdebugইনস্টল করে থাকেন তবে এটি এর উপজাতও হতে পারে।
B00MER

1

আমি আবিষ্কার করেছি যে পিএইচপি মডিউল, এক্সডিবাগ, সক্ষম থাকা স্ট্রেসের কারণে বেশ কয়েকটি gettimeofdayকলের প্রতিবেদন করে।


1

প্রতিটি প্রক্রিয়া যার জন্য টাইমস্ট্যাম্প দরকার গেটটাইমডেডে কল করে, তাই এটি স্বাভাবিক কিনা তা জানা মুশকিল।

উদাহরণস্বরূপ, এটি এমন একটি মডিউল যা লগ তৈরি করে, একটি মডিউল যা সময় পরীক্ষা করে ... আসলে আপনার ক্ষেত্রে, কেন এত গেটটাইমডে রয়েছে তা জানতে, অ্যাপাচি মডিউলগুলি অক্ষম করুন যা গেটটাইমডে কল করার জন্য দায়ী হতে পারে। বিভিন্ন ফোল্ডারে অবস্থিত অসংখ্য লগ ফাইলগুলিতে সম্ভবত অনেকগুলি লেখক রয়েছে।

  • মোড_লগ_দেবগ বা মোড_স্ট্যাটাসের মতো সাধারণ সন্দেহভাজনদের অক্ষম করুন
  • অ্যাপাচি কনফিগারেশন পুনরায় লোড করুন
  • strace,
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.