পর্যায়ক্রমে ওয়েব সার্ভারগুলি পুনরায় চালু করা কি সেরা শিল্প অনুশীলন? [বন্ধ]


28

আমাদের একটি ওয়েব অ্যাপ্লিকেশন রয়েছে (তৃতীয় পক্ষ দ্বারা বিকাশিত) টমক্যাটে চলে। আমরা অ্যাপ্লিকেশনটি থেকে খুব খারাপ পারফরম্যান্স পাচ্ছি। অ্যাপ্লিকেশন বিকাশকারী দাবি করছেন যে সমস্ত মেমরির ব্যবহার মুক্ত করতে এবং আবার শুরু করতে প্রতি রাতে ওয়েব সার্ভারগুলি পুনরায় চালু করা ইন্ডাস্ট্রির সেরা অনুশীলন।

গ্রাহক দৃষ্টিকোণ থেকে যা তাদের দিনের বেলা ক্র্যাশ হওয়ার সাইটের সমস্যাটিকে হ্রাস করে তবে সিসএডমিন দৃষ্টিকোণ থেকে এটি একটি ভয়াবহ সমাধান।

আমরা এই অ্যাপ্লিকেশনগুলির মধ্যে 20 টি বিভিন্ন ক্লায়েন্টের জন্য বিভিন্ন সার্ভারে হোস্ট করি এবং প্রতি রাতে সমস্ত পুনরায় শুরু হচ্ছে তা নিশ্চিত করার সমন্বয়টি ভুল বলে মনে হচ্ছে।


41
তাদের বলুন যে অ্যাপ্লিকেশন বিকাশকারীদের তাদের মেমরি ফাঁসগুলি সন্ধান এবং ঠিক করার জন্য এটি শিল্পের সেরা অনুশীলন।
বার্ট সিলভারস্ট্রিম

4
@ বার্ট ওহ স্ন্যাপ !!
mfinni

1
কেবল আমার দিনটি তৈরি করার জন্য +1 (পিএস: আমি নিজেই বিকাশকারী)
আরএন।

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

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

উত্তর:


29

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


1
এটি একটি খুব ভাল দিক। যদি আপনি নীচে প্রস্তাবিত সার্ভারগুলি পুনরায় আরম্ভ না করেন তবে আপনি হয়ত জানেন না যে আপনার কাছে এমন কিছু পরিষেবা রয়েছে যা সঠিকভাবে শুরু হয় না। তারপরে, বিদ্যুতের ব্যর্থতা / হার্ড পুনরায় চালু হওয়ার ঘটনায় আপনার সার্ভারটি ঠিক আবার ফিরে আসতে পারে না।
আইনস্টিয়ান

1
+1 টি। মাসিক আরও অর্থবোধ করতে পারে - কেবল পুনঃসূচনা করার জন্য নয়, প্যাচগুলি প্রয়োগ করার জন্য একটি সাধারণ অপারেশন পদ্ধতির জন্যও আমি একবার প্রায় 1500 সার্ভারের জন্য প্রশাসক দলের অংশ ছিলাম, 24/7, এবং প্রতি মাসে একটি 3 রাত "ঘূর্ণায়মান ছিল পুনঃসূচনা "নির্ধারিত, যার পয়েন্টে সমস্ত প্যাচ ইত্যাদি সার্ভারেও রাখা হবে। এটি কিছু পরিকল্পনার স্থিতিশীলতা এবং একটি মানক অপারেটিং পদ্ধতি অর্জন করে।
টমটম

12

"সেরা অনুশীলন", অনেক লোক যে কারণে ভাল কারণে কাজ করে এবং "প্রচলিত অনুশীলন", সেই কাজগুলি যেগুলি অলস এবং / বা অজ্ঞ বলে অনেকের মধ্যে পার্থক্য রয়েছে।

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

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

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

প্রদত্ত যে আপনি বিকাশকারীকে প্রতিস্থাপন করতে পারবেন না, কয়েকটি পরামর্শ:

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

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

তবে আরও ভাল, এগুলি আপনাকে এমন প্রমাণ সংগ্রহ করতে সহায়তা করবে যেখানে একটি ফুটো আছে এবং এটি প্রয়োগ করতে পারে এমন সমস্যাটিও ইঙ্গিত করতে পারে। এটি আপনাকে ঠিক করার জন্য লবিতে আরও ভাল গোলাবারুদ দেবে।


2
প্রকৃতপক্ষে, অনেক সময় এটি ত্রুটিযুক্ত পরিকাঠামো, এবং বিকাশকারীর কোড নয়। আমাদের J2EE অ্যাপ্লিকেশানগুলির সাথে ঝামেলার শেষ নেই যেগুলি নিয়মিত JBoss এ আবর্জনা সংগ্রহের নরকে যায় তবে অন্যান্য কমার্সেল অ্যাপ্লিকেশন সার্ভারগুলিতে দুর্দান্ত কাজ করে। সুতরাং এটি বিকাশকারীদের দোষ না হয়ে বরং স্থাপনার পরিবেশ হতে পারে।
rmalayter

6

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


3

এখানে অনেক উত্তর ব্যবহারিক সমাধানের চিহ্ন থেকে দূরে পড়ে বলে মনে হচ্ছে। তারা মনে হয় কৌতূহল রোধ করতে পারে - সার্ভারগুলি কখনই পুনরায় আরম্ভ করা উচিত নয় - কেন আমাদের 5 টি নাইন রয়েছে? দোষ সহনশীলতা? ঠিক আছে তাই যখন তাদের যখন মনে করা হয় তারা আপ থাকে।

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

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


2

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


একেবারে - আমি মনে করি যে আরও ভাল বিকাশকারী খোঁজার জন্য ওপিকে তাদের কাউকে বলা উচিত।
হেলভিক

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

1

আমার কাছে প্রতি স্ক্রিপ্ট প্রতি রাতে আমাদের ওয়েবসভারগুলির একটি পুনরায় চালু আছে তবে এটি শিল্পের মানের চেয়ে খারাপভাবে লিখিত জাভা প্রয়োগের কারণে বেশি more আমি বলব যে যদিও ওয়েব পরিষেবাদি পুনরায় চালু করা অস্বাভাবিক কিছু নয়। এটি আপনি যে মেমরিটি সন্ধান করছেন তা করতে পারে এবং পুরো পুনরায় আরম্ভের তুলনায় সার্ভারে কম চাপ দেয়।


1

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

আমি আগে টমকাটের সাথে কাজ করছি এবং আমারও একই সমস্যা ছিল, পরের বার আমি জাভা ধারকটির সাথে কাজ করব আমি অন্য একটি, সম্ভবত জেবস বা গ্লাস ফিশের সন্ধান করব।

সম্পাদনা করুন: এখনই যদি প্রতি রাতে এটি পুনরায় চালু করতে হয়, তবে / লোড বাড়লে আপনাকে সম্ভবত প্রায়শই এটি পুনরায় চালু করতে হবে। দৃ applications় অ্যাপ্লিকেশন রয়েছে তা নিশ্চিত হন, এটিই সেরা সমাধান।


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

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

1
আপনার যদি কেবল একটি একক সার্ভার এবং / অথবা হার্ডওয়ারের টুকরা থাকে তবে উচ্চ উপলভ্যতার মতো জিনিস নেই। আপনি যদি কেবল একটি সার্ভার দিয়ে থাকেন এবং আপনার পরিষেবাটি এতটাই সমালোচিত হয় যে সার্ভারটি পুনরায় আরম্ভ করার জন্য এটি প্রতিবার 15 মিনিটের ডাউনটাইম সহ্য করতে পারে না তবে আপনি এটি ভুল করছেন। আপনি একটি "শূন্য ডাউনটাইম" অ্যাপ্লিকেশন আছে, তাহলে আপনি হবে একাধিক নোড সঙ্গে একটি সত্য স্বাস্থ্য সহকারীর ব্যবস্থা আছে। এই ক্ষেত্রে, প্যাচ ইত্যাদির জন্য পর্যায়ক্রমে পুনরায় বুট করা ইত্যাদি আপনার নির্দেশের মতোই সহজ।
EEAA

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

0

আমি সর্বাধিক ঘন ঘন সাপ্তাহিক দেখা। যেখানে এখন আমি উইন্ডোজ শপ এবং আমরা প্যাচ মঙ্গলবারের পরে সপ্তাহান্তে এটি মাসিক করি।


যখন আমি এক জায়গায় কাজ শুরু করেছিলাম তখন আমি দেখতে পেলাম যে তাদের রাতের জায়গায় পুনরায় বুট হয়েছে ... এটি অত্যন্ত ভয়াবহ, বিশেষত যেহেতু সার্ভারের ডান ফিরে না আসার প্রায় 1-2% সম্ভাবনা ছিল (হার্ডড্রাইভ ড্রাইভারের টাইমিং বাগ) )। রিবুটগুলির "কারণগুলি" ঠিক করতে কিছুটা সময় নিয়েছিল। সময় ভাল ব্যয়।
ব্রায়ান নোব্লাচ

0

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

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