ফিউশন যাত্রী এবং রেলগুলি ব্যবহার করার সময় ধীরে ধীরে প্রাথমিক সার্ভার স্টার্টআপ করুন


87

ফিউশন প্যাসেঞ্জারের ব্যান্ড-ওয়াগনে ঝাঁপিয়ে পড়ার জন্য আমরা জিনিসগুলি পরীক্ষা করার জন্য একটি ছোট রেল অ্যাপ্লিকেশনটির জন্য একটি স্টেজিং সার্ভার সেটআপ করেছি।

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

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

অন্য কেউ কি এই সমস্যাটি অনুভব করছেন এবং ঠিক করার জন্য আপনার কি কোনও পরামর্শ আছে?


আমি যাত্রীবাহী ডক সাইটে এই নগেটটিও পেয়েছি
অরিস্ট

@ ডিউরিচকে আমি একটি সরঞ্জাম পেয়েছি ( ওয়েকার্কার্স ডটকম ) যা আপনার ক্রোনজবব ঠিক তাই করছে
স্টেইনহাউয়ারড

উত্তর:


119

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

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

# Speeds up spawn time tremendously -- if your app is compatible. 
# RMagick seems to be incompatible with smart spawning
# Older versions of Passenger called this RailsSpawnMethod
PassengerSpawnMethod smart

# Keep the application instances alive longer. Default is 300 (seconds)
PassengerPoolIdleTime 1000

# Keep the spawners alive, which speeds up spawning a new Application
# listener after a period of inactivity at the expense of memory.
# Older versions of Passenger called this RailsAppSpawnerIdleTime
PassengerMaxPreloaderIdleTime 0

# Just in case you're leaking memory, restart a listener 
# after processing 5000 requests
PassengerMaxRequests 5000

"স্মার্ট" স্প্যানিং মোড ব্যবহার করে এবং প্যাসেঞ্জারম্যাক্সপ্রিলারআইডলটাইম বন্ধ করে, যাত্রী আপনার অ্যাপ্লিকেশনটির 1 অনুলিপি সর্বদা স্মরণে রাখবে (অ্যাপাচি শুরু করার পরে প্রথম অনুরোধের পরে)। পৃথক Applicationশ্রোতাদের forkএই অনুলিপিটি থেকে সম্পাদনা করা হবে , এটি একটি অতি-সস্তা অপারেশন। এটি এত তাড়াতাড়ি ঘটে আপনার অ্যাপ্লিকেশনটি শ্রোতার উত্সাহিত হয়েছে কিনা তা আপনি বলতে পারবেন না।

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

যাত্রী ইউজার গাইড এই এবং আরো কনফিগারেশন অপশন জন্য একটি ভয়ঙ্কর রেফারেন্স।

সম্পাদনা : আপনার অ্যাপটি যদি স্মার্ট স্প্যানিংয়ের সাথে বেমানান হয় তবে কয়েকটি নতুন বিকল্প রয়েছে যা খুব সুন্দর

# Automatically hit your site when apache starts, so that you don't have to wait
# for the first request for passenger to "spin up" your application. This even
# helps when you have smart spawning enabled. 
PassengerPreStart http://myexample.com/
PassengerPreStart http://myexample2.com:3500/

# the minimum number of application instances that must be kept around whenever 
# the application is first accessed or after passenger cleans up idle instances
# With this option, 3 application instances will ALWAYS be available after the
# first request, even after passenger cleans up idle ones
PassengerMinInstances 3

সুতরাং, আপনি যদি প্যাসেঞ্জারপ্রেস্টার্ট এবং প্যাসেঞ্জার মাইনস ইনস্ট্যান্টগুলি একত্রিত করেন তবে অ্যাপাচি লোডের পরে প্যাসেঞ্জারটি 3 টি ঘটনা ছড়িয়ে দেবে এবং সর্বদা কমপক্ষে 3 টি উপস্থাপনা রাখবে, তাই আপনার ব্যবহারকারীরা খুব কমই (যদি কখনও) দেরি দেখতে পান।

বা, আপনি যদি PassengerMaxPreloaderIdleTime 0ইতিমধ্যে স্মার্ট স্পাউনিং (প্রস্তাবিত) ব্যবহার করেন তবে PassengerPreStartআপনি তাত্ক্ষণিক স্টার্টআপের অতিরিক্ত সুবিধা পেতে যোগ করতে পারেন।

ফিউশন.এনএল এ নায়কদের অনেক ধন্যবাদ !


উত্তরের জন্য তোমাকে অনেক ধন্যবাদ. আমি বিশ্বাস করি আমরা সেগুলির বেশিরভাগ চেষ্টা করেছি তবে সম্ভবত সঠিক সংমিশ্রণে নেই। আমি আগামীকাল পরীক্ষা নেব এবং প্রত্যাবর্তন করব।
tsdbrown

এটা সত্যিই দারুন. আমার এনগিনেক্স / ফিউশন যাত্রী ইনস্টল করার ক্ষেত্রেও আমার একই সমস্যা ছিল এবং এটি আমাকে প্রচুর পরিমাণে সহায়তা করেছিল।
স্কট অ্যান্ডারসন

আমি এই সেটআপটি চেষ্টা করেছি এবং কোনও পারফরম্যান্সের উন্নতি দেখতে পাচ্ছি না, তবে আমাদের অ্যাপটি আরএম্যাগিক ব্যবহার করছে। এই জন্য কোন workaround আছে? এটি আরএম্যাগিকের সাথে কেন কাজ করে না?
চিপ ক্যাসেল

4
RailsSpawnMethodপক্ষে অবচিত PassengerSpawnMethod modrails.com/documentation/...
পল

4
হাই, আমারও একই সমস্যা রয়েছে এবং আমি সেই কনফিগারেশনটি চেষ্টা করতে চাই, তবে কনফিগারেশনটি কোথায় রাখা উচিত তা আমি জানি না। ধন্যবাদ!
জোসেরামনক

41

কেবলমাত্র যদি এই প্রশ্নটিতে কোনও এনগিনেক্স সার্ভার ব্যবহারকারীরা হোঁচট খাচ্ছে, তবে 'প্যাসেঞ্জারম্যাক্সরুইকাস্টস' এবং 'প্যাসেঞ্জারস্ট্যাটট্রট্রলরেট' উভয় নির্দেশিকা এনজিএনক্সে অনুবাদ করে না। তবে অন্যরা তা করে:

rails_spawn_method smart;
rails_app_spawner_idle_time 0;
rails_framework_spawner_idle_time 0;
passenger_pool_idle_time 1000;

এইচটিএইচ!

rails_spawn_methodপরিবর্তে ব্যবহারকারীর 3 এডিটি হ্রাস করা হয়

passenger_spawn_method smart; 

আজ অবধি সবকিছু ঠিক আছে।


7
এর জন্য ধন্যবাদ. একটি বিষয় লক্ষণীয় হ'ল আমাকে আমার মূল nginx.conf এ যাত্রীবাহী_পুল_ইডল_টাইমকে কেবলমাত্র নির্দিষ্ট সাইট কনফিগারেশনের পরিবর্তে যেখানে রেলগুলি সক্ষম করা হয়েছে তার পরিবর্তে অন্যান্য গ্লোবাল সেটিংসে স্টাফ করতে হয়েছিল।
স্কট অ্যান্ডারসন

তবে যাত্রী 4 -এ ত্রুটি:"passenger_max_preloader_idle_time" directive is duplicate
টাংমঙ্ক

4

আপনি প্যাসেঞ্জারমিনিস্ট্যান্টগুলিও ব্যবহার করতে পারেন:

http://www.modrails.com / ডকুমেন্টেশন / ব্যবহারকারীগণ ২০২০ গাইড 20

এটি প্যাসেঞ্জারপ্রেস্টার্টের সাথে মিলিত হতে পারে


দস্তাবেজগুলি থেকে: "কোনও ওয়েবসাইট বর্ধিত সময়ের জন্য নিষ্ক্রিয় থাকার পরে আপনি যদি সম্ভাব্য দীর্ঘ প্রারম্ভকালীন সময় এড়াতে চান তবে আপনার এই বিকল্পটি একটি শূন্য-না মানতে সেট করা উচিত" " ওপি-র প্রশ্নের সঠিক উত্তর বলে মনে হচ্ছে।
চক

2

পুন:

# Additionally keep a copy of the Rails framework in memory. If you're 
# using multiple apps on the same version of Rails, this will speed up
# the creation of new RailsAppSpawners. This isn't necessary if you're
# only running one or 2 applications, or if your applications use
# different versions of Rails.
RailsFrameworkSpawnerIdleTime 0

কিছু যুক্ত করার জন্য এবং দরকারী হতে পারে।

বর্তমান রিলিজের ডিফল্ট স্পন পদ্ধতিটি হ'ল "স্মার্ট-এলভি 2", যা ফ্রেমওয়ার্ক স্প্যানারকে এড়িয়ে চলে, সুতরাং ফ্রেম ফ্রেম স্প্যানারের সময়সীমা নির্ধারণ কোনওভাবেই কার্যকর হবে না আপনি যদি স্প্যান পদ্ধতিতে "স্মার্ট" তে সেট না করেন।

সূত্র: http://groups.google.com/group/phusion-pas यात्रा / browse_thread / thread / c21b8d17cdb073fd?pli=1


1

আপনার হোস্টটি যদি আমার মতো একটি ভাগ করা সার্ভার হয় তবে আপনি সেটিংস পরিবর্তন করতে পারবেন না এবং ক্রোন জবটিতে আটকে থাকবেন।


এই বিশেষ অ্যাপ্লিকেশন জন্য ধন্যবাদ এটি না। তবে আমি ভবিষ্যতের ধন্যবাদ জানার জন্য এটি মনে রাখব।
tsdbrown

1

আমারও এই সমস্যা ছিল তবে আমি যাত্রী সেটিংস পরিবর্তন করতে পারিনি কারণ আমার এই ফাইলটিতে লেখার অনুমতি নেই। আমি একটি সরঞ্জাম পেয়েছি ( http://www.wekkars.com ) যা আমার অ্যাপ্লিকেশনটিকে দ্রুত সাড়া দেয়। এটিও আপনার জন্য সমাধান হতে পারে।


0

যাত্রীর সংস্করণ পরীক্ষা করুন। এটি <string>পুরানো সংস্করণগুলির জন্য রেলসপ্পেনমঠোদ ।

যদি তাই হয় (যদি আমি সঠিকভাবে মনে করি), সমস্ত কনফিগারেশনের নির্দেশিকায় প্যাসেঞ্জারকে রিলগুলি প্রতিস্থাপন করুন বা আরও বিশদে বিশদ জন্য পুরানো যাত্রী ডক্সের সন্ধান করুন

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