ইন্টারনেট এক্সপ্লোরার ব্যবহার করে পিএইচপি / সিআরএলকে দীর্ঘ চলমান ডেটা এপিআই এর জন্য আবেদনের ফলে অ্যাপাচি 2 সার্ভার হিম হয়ে যায় এবং পুনরায় আরম্ভ করার প্রয়োজন হয়


10

আমি এমন একটি পিএইচপি প্রোগ্রাম চালিয়ে যাচ্ছি যতক্ষণ না এটি মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার ব্রাউজার দ্বারা চালিত না হয়, যার পরে এটি নীচের প্রক্রিয়াগুলিকে উত্সাহ দেয়, অ্যাপাচি 2 লক করে এবং ওয়েব সার্ভার পুনরায় চালু করতে (উবুন্টু 12.04 এলটিএসে) প্রয়োজন।

bob@drools:/etc/php5/apache2# ps auxwww | grep apache2
root      8737  0.1  2.5 369164 25800 ?        Ssl  12:41   0:00 /usr/sbin/apache2 -k start
www-data  8743  0.0  3.2 393748 33268 ?        Sl   12:41   0:00 /usr/sbin/apache2 -k start
www-data  8755  0.1  3.3 393856 33904 ?        Sl   12:41   0:00 /usr/sbin/apache2 -k start
www-data  8779  0.1  3.2 393724 33252 ?        Sl   12:45   0:00 /usr/sbin/apache2 -k start
www-data  8782  0.1  3.2 393716 33236 ?        Sl   12:45   0:00 /usr/sbin/apache2 -k start
www-data  8785  0.1  3.2 393684 33204 ?        Sl   12:45   0:00 /usr/sbin/apache2 -k start
www-data  8812  1.1  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8815  1.3  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8818  1.3  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8821  1.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8824  1.4  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8827  1.4  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8830  1.4  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8835  2.5  3.2 393684 33256 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8838  2.8  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8841  2.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8844  2.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8847  3.2  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8850  3.0  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8853  3.2  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8856  3.2  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8861  3.3  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8864  3.6  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8867  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8870  3.6  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8873  3.6  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8876  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8879  3.3  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8881  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8883  3.6  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8886  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8891  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8894  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8896  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8900  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8901  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8904  3.5  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8909  3.8  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8912  3.8  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8915  3.8  3.2 393684 33264 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
www-data  8918  3.6  3.2 393684 33260 ?        Sl   12:47   0:00 /usr/sbin/apache2 -k start
root      8922  0.0  0.1   9396  2000 pts/0    S+   12:47   0:00 grep --color=auto apache2

আমি " এমপিএম_ " মডিউল প্যারামিটারগুলির কিছুগুলিকে /etc/spache2/apache2.conf এ আরও যুক্তিসঙ্গত কিছুতে পরিবর্তন না করা পর্যন্ত এটি সম্পূর্ণ সার্ভারটিকে লক করে রাখে

ইন্টারনেট এক্সপ্লোরারের সমস্যাগুলি দেওয়া, আমি এমনকি এই লাইনটি যুক্ত করেছি:

**" SetEnvIf User-Agent ".*MSIE.*"   nokeepalive "**

ভার্চুয়াল হোস্ট ফাইলটিতে এখানে অবস্থিত: / ইত্যাদি / অ্যাপাচি 2 / সাইটগুলি উপলভ্য।

ইস্যুতে অনেকগুলি নিবন্ধ লেখা আছে, তবে সেগুলির কোনও প্রয়োগ করতে আমার কোনও সাফল্য হয়নি not

আইই 10/11 থেকে অনুরোধ পাওয়ার পরে অ্যাপাচি সার্ভার 2 হ্যাং করে :

আরও গবেষণা ও উন্নয়ন: ইন্টারনেট এক্সপ্লোরার 10 (উইন্ডোজ 8) অ্যাপাচি ক্র্যাশ করছে

পিএইচপি প্রোগ্রামটি 25 টি আইটেমের একটি তালিকা নেওয়ার জন্য সিআরএল ব্যবহার করে এবং বহিরাগত সার্ভারে প্রত্যেকের জন্য একটি (জিইটি) এপিআই কল করে যা আরও প্রক্রিয়াকরণের জন্য জেএসএন ডেটা ফেরত দেয়। এটি একটি শাস্ত্রীয় দীর্ঘ চলমান ডেটা প্রোগ্রাম।

আমার নুডলটি কী বেক করবে তা হ'ল ইন্টারনেট এক্সপ্লোরার ব্যতীত অন্য প্রতিটি ব্রাউজারে এটি দুর্দান্ত থাকে - যা ওয়েব সার্ভারকে খারাপ ব্যবহার করে mis

আমি তালিকাভুক্ত আরএন্ডডি এবং তারপরে কিছু জিজ্ঞাসাবাদ করেছি, প্রস্তাবিত সংশোধনগুলি কার্যকর করেছি, তবুও আমি এখনও একই পূর্বাভাসযোগ্য, পুনরুদ্ধারযোগ্য, সমস্যাযুক্ত সার্ভার আচরণ পেয়েছি।

সার্ভারটি যখন এটির মুখোমুখি হয় তখন এটি খারাপ আচরণ থেকে কীভাবে রক্ষা করতে হয় এবং ইন্টারনেট এক্সপ্লোরার ব্রাউজারের এই বিশেষ অনুরোধগুলি তৈরি করে তা কীভাবে নির্ধারণ করা দরকার figure আমি বুঝতে চাই যে এটি প্রথম স্থানে কেন ঘটে।

যে কোনও দিকনির্দেশনা, দৃষ্টিভঙ্গি, দিকনির্দেশ বা সমাধানগুলি প্রশংসিত হবে ...

এখানে আমার সিআরএল কোডের একটি স্ন্যাপশট রয়েছে:

<?php

// *** CURL Init, SetOps, and Execution Statements ****
$ch = curl_init();


// *** Execute the  API call for each part number and store in the Associative Array ****
$index=0;
foreach ($partNumbersArray as $partNum) {

    $MyValue = $partNum;

    $MyUrl = $MyNiinjaBaseURL."/".$APICmd1."/".$MyDataSet."/".$MyValue."?key=".$MyKey."&$"."filter=substringof('".$MyValue."',PartNumbers)";


    // *** cURL SetOpts, and Execution Statements ****
    curl_setopt($ch, CURLOPT_URL, $MyUrl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    // curl_setopt($ch, CURLOPT_TIMEOUT, 15);       // <= THIS *never* worked with any reliability ....
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $server_output = curl_exec ($ch);   // <= THIS executes the cURL call and stores the resulting JSON object in the variable '$server_output'

    $niinjaResultsJsonArray[$MyValue] = $server_output;        // Add the JSON object to the Array and index to PartNumber
    $index++;                                                // Increment the index

} // End Execution of NIINJA API Calls

// ** Close the CURL Object and release resources
curl_close ($ch);

?>

এখানে পিএইচপি তথ্য পৃষ্ঠা: http://www.versaggi.net/phptest.phtml


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

আশা করি আপনি আপনার প্রশ্নের জন্য কিছু মনোযোগ পেতে সহায়তা করতে আমি এটিতে একটি অনুগ্রহ রেখেছি।
স্টিজন ডি উইট

2
আরও কিছু ভেবে আপনি সম্ভবত এটি আপাচে একটি বাগ হিসাবে রিপোর্ট করতে পারেন ... কারণ এটিকে আমি অ্যাপাচি বাগ হিসাবে না বলে ব্যাখ্যা করার সত্যিই উপায় নেই। এটি আপনাকে সমস্যাটি দেখার জন্য খুব অভিজ্ঞ অভিজ্ঞ অ্যাপাচি গুরুকে পেতে সহায়তা করতে পারে (এবং আশা করি এটি সমাধান করুন)। আপনি যদি সেই পথে যেতে চান তবে সমস্যাটি অনুভব করা পৃষ্ঠাটি সংক্ষিপ্ত সম্ভাবনাময় দৃশ্যে এখনও সংক্ষিপ্ত আকারে সঙ্কুচিত হলে সহায়তা করতে পারে। এটি যে কোনও উপায়ে এবং নিজের পক্ষে সহায়ক হতে পারে।
স্টিজন ডি উইট

সেটলপটি ব্যবহার করে কার্লে একটি সময়সীমা নির্ধারণ করুন
ব্যবহারকারী 1050544

3
পিএইচপি স্ক্রিপ্ট দ্বারা URL গুলি অ্যাক্সেস করা হচ্ছে তাতে ক্লায়েন্টের কি কোনও প্রভাব আছে? আপনি যখন উপরের অবস্থায় সার্ভারটি পেয়েছেন তখন কি সিআরএল অনুরোধগুলি এখনও চলছে? এটি কী এমন হতে পারে যে যখন অনুরোধগুলি খুব ধীরে ধীরে সাড়া দিচ্ছে তখন অনুরোধগুলি আবার চেষ্টা করছে? যদি আপনার ওয়েবসারভারের প্রতিটি এইচটিটিপি অনুরোধের কারণে এটি ব্যাকএন্ডে আরও 25 টি এইচটিটিপি অনুরোধ শুরু করতে পারে তবে তা দ্রুত বাড়তে পারে। আপনি কি একাধিক ক্লায়েন্টের জন্য সিআরএল দিয়ে যে প্রতিক্রিয়াগুলি পেয়েছেন তা পুনরায় ব্যবহার করতে পারেন?
ক্যাস্পার্ড

উত্তর:


5

অনেক দিন আগে, আমি অ্যাপাচি লক-আপগুলি দেখেছি যা একই সার্ভারে অ্যাপাচি প্রক্রিয়া দ্বারা পরিবেশন করা অন্য ইউআরএলকে এইচটিটিপি-র মাধ্যমে কল করার জন্য একটি অ্যাপাচি প্রক্রিয়া ঘটে। আমি মাঝে মাঝে এই ধরণের কলগুলির জন্য অপেক্ষা করার জন্য গুচ্ছ প্রক্রিয়াগুলি সহ তাদের ক্ষতিকারক হয়ে ওঠে ache আমার ক্ষেত্রে আমার কয়েকটি ওয়েব পৃষ্ঠাগুলির সামনে একটি অনুবাদ স্তর ছিল, তবে আপনার নিজের সাইটে একটি এপিআই কল করা একই জিনিস।

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

এটি যদি আমি যা দেখেছি তার মতো কিছু হয় তবে আপনি আপনার কার্ল ব্যবহারের সময়সীমা আচরণের দিকে নজর রাখতে চান। আপনি যে কোডটি অন্তর্ভুক্ত করেছেন তাতে বোঝা যাচ্ছে যে আপনি এটির উপরে রয়েছেন, তবে অনুরোধটি কী পয়েন্টটি পাচ্ছে তা সঠিকভাবে বোঝার জন্য আপনাকে আরও সূক্ষ্মতর হতে হবে। এটা দিয়ে এটি তাকান আগ্রহপূর্ণ হতে পারে এমন tcpdump (অথবা ngrep, Wireshark , অথবা যাই হোক না কেন)। এছাড়াও কলিং প্রক্রিয়াটি স্থগিত হলে কোন কল কলটি প্রক্রিয়াধীন তা জেনে রাখা ভাল। অর্থাৎ এটি দিয়ে দেখুন strace -p [PID]

আপনি সম্ভবত আপনার API এর ব্যবহার থেকে এইচটিটিপি কল সরাতে পারবেন কিনা তা নিয়েও ভাবতে হবে। আপনি কি সেই অ্যাপ্লিকেশন অনুরোধটি পরিচালনা করে এমন উপযুক্ত কোডটিতে সরাসরি কল করে জিনিসগুলি একই অ্যাপাচি প্রক্রিয়ার মধ্যে রাখতে পারেন?

আপনি কীভাবে পিএইচপি চালাচ্ছেন (উদাহরণস্বরূপ Mod_php, fpm, ইত্যাদি) লোকেদের বলতে এটি সম্ভবত প্রাসঙ্গিক। এটি সেই প্রক্রিয়াটি বোঝার অংশ হতে পারে যার মাধ্যমে কোড লক হয়ে যায়।


এটি পিএইচপি ইন্টার্নালদের জিজ্ঞাসাবাদে সহায়তা করতে পারে ... versaggi.net/phptest.phtml
ProfVersaggi

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