আমি বড় ফাইলগুলির আপলোড গ্রহণ করার জন্য একটি কোল্ডফিউশন সার্ভার সেট আপ করার চেষ্টা করছি এবং আমি কিছুটা সীমাবদ্ধতায় ঝাঁপিয়ে পড়ছি। আমি এখন পর্যন্ত যা পর্যবেক্ষণ করেছি তা এখানে:
কোল্ডফিউশন প্রশাসকের দুটি সেটিংস রয়েছে যা আপলোডগুলির আকারকে সীমাবদ্ধ করে: "পোস্ট ডেটার সর্বাধিক আকার" এবং "অনুরোধ থ্রটল মেমোরি"। যদি আপনার আপলোডের আকার (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
। কিন্তু আবার এই ক্ষেত্রে সার্ভারটি ক্লায়েন্টকে কখনও ত্রুটি না প্রেরণ করে অনুরোধটি ভুলে গেছে বলে মনে হয়।