আমি কেন পুনরায় ব্যবহার করব?


103

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

পঠন কেন ব্যবহার করে পুনরায় সংশোধন করুন এবং প্রকাশ করবেন না? মনে হচ্ছিল পুনর্নির্মাণ একটি ভাল পছন্দ।

কিন্তু অবাক হয়ে এলো যখন আমি দুজনকে বোঝা দিয়ে চেষ্টা করেছি।

আমি পুনরায় আকারে একটি নমুনা REST এপিআই তৈরি করেছি এবং প্রতি সেকেন্ডে 1000 টি অনুরোধের সাথে এটি প্লাবিত করেছি। আমার অবাক করে দিয়ে রুটটি কিছুক্ষণ পরে সাড়া না দেওয়া শুরু করল। এক্সপ্রেস.জেজে নির্মিত একই অ্যাপটি সব পরিচালনা করে hand

আমি বর্তমানে API এর মাধ্যমে লোড প্রয়োগ করছি

var FnPush = setInterval(function() {           
    for(i=0;i<1000;i++) 
        SendMsg(makeMsg(i));                
}, 1000);

function SendMsg(msg) {
    var post_data = querystring.stringify(msg);
    var post_options = {
        host: target.host,
        port: target.port,
        path: target.path,
        agent: false,
        method: 'POST',
        headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
                'Content-Length': post_data.length,
                "connection": "close"
            }
    };

    var post_req = http.request(post_options, function(res) {});
    post_req.write(post_data);  
    post_req.on('error', function(e) {          
    }); 
    post_req.end();
}

আমি যে ফলাফল পেয়েছি তা বুদ্ধিমান বলে মনে হচ্ছে? এবং যদি তাই হয় তাহলে এই দৃশ্যে স্বতন্ত্রতা তুলনায় আরও দক্ষ? বা আমি যেভাবে সেগুলি পরীক্ষা করেছিলাম তাতে কোনও ত্রুটি আছে?

মন্তব্য প্রতিক্রিয়া আপডেট

পুনঃস্থাপনের আচরণ

  1. ১০০০ রেকর্ডেরও বেশি বোঝা দিয়ে খাওয়ানো মাত্র ১০ সেকেন্ডে মাত্র এক সেকেন্ডে প্রক্রিয়াকরণ বন্ধ করে 1015 বর্গকীট পরে কিছু না করে। অর্থাত্ আগত অনুরোধ গণনা করার জন্য আমি যে কাউন্টারটি প্রয়োগ করেছি তা 1015 এর পরে বৃদ্ধি বন্ধ করে দিয়েছে।

  2. এমনকি যখন প্রায় 100 স্কোরের বোঝা দিয়ে খাওয়ানো হয়। প্রতি সেকেন্ডে এটি 1015 অবধি প্রাপ্ত এবং এর পরে প্রতিক্রিয়াহীন হয়ে পড়ে।


4
আপনি কি এর মধ্যে দিয়ে গেছেন: blog.perfectapi.com/2012/… ? আপনি যদি গুগলে অনুসন্ধান করেন তবে আপনি শুনতে পাবেন যে এর পারফরম্যান্স সম্পর্কে অনেকের সন্দেহ রয়েছে।
মুনিম

4
এটি সম্ভব যে রুটগুলি পার্স করার সময় বা কোথাও ডেটা অনুরোধ করার সময় কোথাও ব্লকটির পুনঃনির্ধারণ এবং দক্ষতার সাথে এটি না করে, যা উচ্চ লোডের সাথে প্রতিক্রিয়া বারগুলিতে স্পাইকগুলি বাড়ে। এক্সপ্রেস.জেএস হালকা ওজনের তবে কার্যক্ষমতায় সমৃদ্ধ। এটি যেভাবে তৈরি হয়েছে, এখনও এটি হালকা করে তোলে কারণ অব্যবহৃত কার্যকারিতা ওভারাল পারফরম্যান্সে খুব বেশি প্রভাব ফেলেনি। পাশাপাশি এটি ভাল রক্ষণাবেক্ষণ এবং বড় সংস্থাগুলি ব্যবহার করে, উদাহরণগুলির মধ্যে একটি: মাইস্পেস। আমি REST এপিআই-এর জন্য এক্সপ্রেস.জেএস ব্যবহার করার কোনও অসুবিধা দেখতে পাচ্ছি না (আমি আসলে তা-ই করেছি), কার্যত কার্যকারিতা হওয়ায় ভবিষ্যতে এটি আপনাকে আপনার API উন্নত করতে দেয়।
মোক

4
@ মুনিম: গ্রাফের জন্য ধন্যবাদ তবে পৃষ্ঠাটি বলেছে " দ্রষ্টব্য, পুনর্নির্মাণের পারফরম্যান্সের সমস্যাগুলি সমাধান করার পর থেকে এই চার্টটি পুরানো But " .. তবে মনে হচ্ছে কোনও কিছুই সমাধান হয়নি !!
মিঠুনসথীশ

4
@ মিঠুনসথেশ আমি সেগুলি লক্ষ্য করেছি। তবে লেখক যেহেতু নতুন করে পড়াশোনা করেননি, তাই আমি এটিকে এক চিমটি নুন দিয়ে নিয়েছি। গিথুব ইস্যুতে এখনও লোকেরা কর্মক্ষমতা সম্পর্কে অভিযোগ করে।
মুনিম

4
আপনি কি আরও (পুনর্নির্মাণ) নমুনা কোড দিতে পারেন?
অ্যাড্রিয়ান হাইন

উত্তর:


51

শুদ্ধ : এই তথ্য এখন ভুল, স্ক্রোলিং রাখা!

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


এটি ২০১৫ এবং আমি মনে করি পরিস্থিতি অনেক পরে পরিবর্তিত হয়েছে has রায়গন.ইওপি একটি সাম্প্রতিক মাপকাঠি পোস্ট করেছে যা হাপি, এক্সপ্রেস এবং পুনরায় আকারের সাথে তুলনা করে

এটা বলে:

আমরা এটিও সনাক্ত করেছি যে রিস্টিফাই সংযোগগুলি জীবিত রাখে যা একই ক্লায়েন্টের কাছ থেকে কল পাওয়ার সময় প্রতিবার সংযোগ তৈরির ওভারহেড সরিয়ে দেয়। ন্যায়সঙ্গত হওয়ার জন্য, আমরা সংযোগটি বন্ধ করার কনফিগারেশন পতাকাটির সাথে রেজাইফাইও পরীক্ষা করেছি। সুস্পষ্ট কারণে আপনি সেই দৃশ্যে থ্রুপুটটিতে যথেষ্ট হ্রাস দেখতে পাবেন।

রায়গুন.ইও-এর বেঞ্চমার্ক চিত্র

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


4
আপনি যে ব্লগ পোস্টটি উল্লেখ করছেন তা কার্যকর, যদি লেখক তার অনুসরণ করা পরীক্ষার প্রক্রিয়া সম্পর্কে আরও বিশদ প্রকাশ করে। পোস্টের নীচে মন্তব্য দেখুন!
মিঠুনসথেেশ

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

রেসিটিফাই ডক্স অনুসারে এটি ডিট্রেসকেও সমর্থন করে। mcavage.me/node-restify/#dtrace
জেফ ফেয়ারলি


4
সিদ্ধান্তে নেওয়ার আগে উল্লিখিত একই নিবন্ধে সংযোজনটি নোট করুন।
ভিগনেশ টিভি

27

এটি 2017 এবং হাইগি, এক্সপ্রেস, রেজিস্টাইফ এবং কোয়ার সাথে তুলনা করে রায়গন.ওয়ের সর্বশেষ পারফরম্যান্স পরীক্ষা ।

এটি দেখায় যে কোয়া অন্যান্য ফ্রেমওয়ার্কগুলির চেয়ে দ্রুত, তবে এই প্রশ্নটি এক্সপ্রেস এবং পুনরায় আকার দেওয়ার বিষয়ে, এক্সপ্রেসটি পুনরায় আকার দেওয়ার চেয়ে দ্রুত faster

এবং পোস্টে লেখা আছে

এটি দেখায় যে সত্যিকারের পুনঃসংশোধন আমার প্রাথমিক পরীক্ষার রিপোর্টের চেয়ে ধীর।

এখানে চিত্র বর্ণনা লিখুন


11

মতে নোড নকআউট বিবরণ :

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

পারফরম্যান্স সমস্যা এবং বাগগুলি সম্ভবত ঠিক করা যেতে পারে। হতে পারে যে বিবরণ যথেষ্ট প্রেরণা হবে।


5

আমি ওএস এক্স-এর মাধ্যমে আবের মাধ্যমে একাধিক ফ্রেমওয়ার্কগুলি বেঞ্চমার্ক করে একই ধরণের সমস্যায় পড়েছি। প্রায় এক হাজারতম অনুরোধের পরে ধারাবাহিকভাবে কিছু স্ট্যাক মারা গিয়েছিল।

আমি সীমাটি উল্লেখযোগ্যভাবে ছিটিয়েছি, এবং সমস্যাটি অদৃশ্য হয়ে গেল।

আপনি আপনার maxfiles পরীক্ষা করতে পারবেন সঙ্গে এ ulimit , (অথবা launchctl সীমা <OS X এর শুধুমাত্র) এবং দেখুন সেখানে কি সর্বোচ্চ।

আশা করি এইটি কাজ করবে.


হুম .. মনে হচ্ছে এটি কানেক্ট.বডি পার্সার () সমস্যার মতো হতে পারে, যেখানে প্রতিটি সংযোগ স্থানীয় ফাইল সিস্টেমে অস্থায়ী ফাইলগুলি খুলবে?
এরিক এলিয়ট

ওএসগুলি সাধারণত একটি প্রক্রিয়া, থ্রেড এবং / অথবা ওএস এক সাথে হ্যান্ডেল করতে পারে এমন ফাইল বর্ণনাকারীর সংখ্যার উপর কনফিগার করার সীমা থাকে। লিনাক্স এর জন্য: stackoverflow.com/questions/760819/... MacOS এর x এর জন্য: stackoverflow.com/questions/7578594/...
AndreasPizsa

2

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

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