বড় ফাইল আপলোডের জন্য কোল্ডফিউশন সেটিংস


8

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

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

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

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

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

পরিসংখ্যান INFO

এখানে কিছু সংস্করণ নম্বর আছে।

ওয়েব সার্ভার:

Server: Apache/2.2.24 (Win64) mod_jk/1.2.32

ঠান্ডা লয়:

Server Product           ColdFusion
Version                  ColdFusion 10,285437
Tomcat Version           7.0.23.0
Edition                  Enterprise
Operating System         Windows Server 2008 R2
OS Version               6.1
Update Level             /E:/ColdFusion10/cfusion/lib/updates/chf10000011.jar
Adobe Driver Version     4.1 (Build 0001)

পরিসংখ্যান INFO # 2

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

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

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

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

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

"সর্বোচ্চ আকারের পোস্ট ডেটা" হিট হওয়ার ঘটনাটি এখনও কিছুটা রহস্য is হার্ড সীমাতে আঘাত করা অনুরোধগুলি সারি করা উচিত নয়, কেবল প্রত্যাখ্যান করা উচিত। এবং আমি একটি প্রত্যাখ্যান বার্তা পাই ("পোস্টের আকারটি সর্বাধিক সীমা 200 এমবি ছাড়িয়ে গেছে।") server.log। কিন্তু আবার এই ক্ষেত্রে সার্ভারটি ক্লায়েন্টকে কখনও ত্রুটি না প্রেরণ করে অনুরোধটি ভুলে গেছে বলে মনে হয়।


দুটি প্রশ্ন: 1. আপনি কি এটি শীতল ফিউশন, এবং নিজেই ওয়েব সার্ভার নয়? এবং 2. আপনি কি অনুরোধের সময়সীমাটি দেখেছেন?
ক্যাথরিন ভিলিয়ার্ড

1
আমি নিশ্চিত. কোনও সময়সীমা নেই (আপলোডটি একটি টিসিপি উইন্ডো পূরণ করে এবং তারপরে স্টলগুলি w জরিমানা (এটি কোথাও সংরক্ষণ করা যায় না কারণ ফর্মের ডেটা প্রক্রিয়াজাতকরণের কিছুই নেই, তবে মূল বিষয়টি এটি স্টল করে না))

উত্তর:


1

আমি সুর করার জন্য সেটিংসটিও ব্যাখ্যা করার চেষ্টা করব: -

  • POST অনুরোধ পরামিতিগুলির সর্বাধিক সংখ্যা - এটি নির্দিষ্ট অনুরোধের মাধ্যমে প্রেরিত সর্বোচ্চ বৈশিষ্ট্য / পরামিতিগুলির সংখ্যাকে বোঝায়। একটি ফর্ম ডেটা পোস্ট করার সময়, বিশেষত ব্যবহৃত হয়।
  • পোস্ট ডেটার সর্বাধিক আকার - এটি সর্বাধিক ডেটা যা কোনও সার্ভারে পোস্ট করা যায়। এটি কোনও পোষ্ট অনুরোধের সময় একটি নির্দিষ্ট ফর্মের সমস্ত ডেটার যোগফল।
  • থ্রোটোল্ড থ্রেশহোল্ডের জন্য অনুরোধ করুন - কোল্ডফিউশন প্রয়োজন হলে আগত অনুরোধগুলিকে থ্রোটল (জোর করে ধীরে ধীরে) করতে পারে। তবে, থ্রোটল রাষ্ট্র নির্বিশেষে ছোট ছোট অনুরোধগুলি (যারা একটি ছোট পেডলোড রয়েছে) তাদের মঞ্জুরি দেওয়া যেতে পারে। ছোট অনুরোধগুলি প্রক্রিয়া করার অনুমতি দিতে সর্বাধিক অনুমোদিত আকার নির্দিষ্ট করুন (ডিফল্টটি সর্বোচ্চ 4 এমবি) MB
  • থ্রটল মেমোরির অনুরোধ করুন - অনুরোধের জন্য থ্রোটল, থ্রোটলের জন্য বরাদ্দ হওয়া সর্বোচ্চ পরিমাণের মেমরির উল্লেখ করুন specify পর্যাপ্ত মেমরি উপলব্ধ না হলে, যথেষ্ট মেমরি মুক্ত না হওয়া পর্যন্ত কোল্ডফিউশন সারিগুলি অনুরোধ করে (ডিফল্টটি 200 এমবি)। এটি রেক 1 এর জন্য মেমরিটি থ্রেশহোল্ডের চেয়ে কম হিসাবে সংরক্ষণ করবে না।

বিবেচনা করুন যে তিনটি একযোগে অনুরোধ রেক 1 (3 মেগাবাইট), রেক 2 (6 এমবি) এবং রেক 3 (9 এমবি) রয়েছে। ডিফল্ট সেটিংসের সাথে, অনুরোধ থ্রোটাল থ্রোসোল্ড 4 এমবিতে সেট করা, কোল্ডফিউশন থ্রোটল মেমোরিতে (6 + 9 = 15MB) রিজার্ভ করবে। অনুরূপভাবে, এটি সমস্ত যুগপত অনুরোধের জন্য অনুরোধ অনুরোধের জন্য থ্রটল মেমোরি যুক্ত করা অবিরত রাখবে এবং আমরা অনুরোধ থ্রটল মেমরির জন্য সীমা নির্ধারণ করেছি (ডিফল্টটি 200 এমবি)

আশাকরি এটা সাহায্য করবে.


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

1

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


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

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