মাঝারি ট্র্যাফিক সহ ড্রুপাল for এর জন্য সর্বোচ্চ_নিযুক্ত_প্যাক্টের যুক্তিসঙ্গত মান কী?


12

আমার ড্রুপাল 7 সাইটের জন্য এই পরিবর্তনশীলটির জন্য আমার কিছু বল পার্ক নম্বর জানতে হবে। আমি সম্প্রতি একটি "ড্রুপাল" পিডিওএক্সেপশন পেয়েছি: এসকিউএলস্টেট [08S01]: যোগাযোগ লিঙ্ক ব্যর্থতা: 1153 "ত্রুটি I আমি মাইএসকিএল-এর একজন নবাগত এবং শেয়ার্ড হোস্টিং ব্যবহার করছি I সম্ভবত আমার পক্ষে প্রশাসককে এটি করার জন্য বলা উচিত।

আগাম ধন্যবাদ.


1
আমার উত্তর এটির সাথে আমার অভিজ্ঞতা দেখায় তবে যারা জীবনধারণের জন্য মাইএসকিউএল বজায় রাখেন তাদের কাছ থেকে আপনি dba.stackexchange.com এ আরও ভাল প্রতিক্রিয়া পেতে পারেন।
এমপিডোনাদিও

উত্তর:


12

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

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

এটি মজার বিষয় যে আমি আরও একটি প্রশ্নের সমাধান করেছি যেখানে আমি আশা করছি যে সমস্যাটি সমাধান করার জন্য সর্বোচ্চ_নোকলা প্যাকেট আকার দেওয়ার পরামর্শ দেওয়া হয়েছিল

বিচারকার্য স্থগিত রাখার আদেশ

মতে বইয়ের

TheBookImage

মাইএসকিউএল প্যাকেট সম্পর্কে পৃষ্ঠা 99 অনুচ্ছেদ 1-3 যা বলেছে তা এখানে:

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

এই বিকল্পের সাথে সম্পর্কিত আগ্রহের কোডটি স্কুয়েল / নেট_জারি.সি.সি তে পাওয়া যায় । কটাক্ষপাত my_net_read () , তারপর থেকে কল অনুসরণ my_real_read () এবং বিশেষভাবে নজর দিতে net_realloc ()

এই পরিবর্তনশীলটি অনেকগুলি স্ট্রিং ফান্টাক্টনের ফলাফলের দৈর্ঘ্যও সীমাবদ্ধ করে। দেখুন SQL / field.cc এবং SQL / intem_strfunc.cc বিস্তারিত জানার জন্য।

মাইএসকিউএল প্যাকেটগুলি সম্পর্কে এটি জানার সাথে সাথে ডিবিএ তাদের মাপ দিতে সক্ষম করে একটি মাইএসকিউএল প্যাকেটের ভিতরে একাধিক বিএলএলবি সমন্বিত করতে, এমনকি যদি তারা বড় আকারের হয় না।

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

SET GLOBAL max_allowed_packet = 1024 * 1024 * 256;

এরপরে, [mysqld]বিভাগের অধীনে my.cnf এ এই সেটিংটি যুক্ত করুন :

[mysqld]
max_allowed_packet = 256M

সর্বাধিক অনুমোদিত প্যাকেটটি statementsোকানো বিবৃতিগুলির আকারকেও প্রভাবিত করে না?
বাটল বাটকাস

@ বাটলবাটকাস অবশ্যই এজন্য বড় মাইএসকিউএল প্যাকেটগুলি INSERTs এর জন্য ভাল করে। দয়া করে মনে রাখবেন যে 1 জি সর্বোচ্চ_গতিযুক্ত_প্যাকেটের জন্য সর্বোচ্চ আকার। আরও মনে রাখবেন যে 256 এম-তে সর্বোচ্চ_গোলিত_প্যাকটি সেট করা 256 এম আপফ্রন্ট বরাদ্দ করে না। Dev.mysql.com/doc/refman/5.6/en/… এর মতে , MySQL প্যাকেটের আকার হিসাবে নেট_বফার_ দৈর্ঘ্য যাই হোক না কেন মাইএসকিএল্ড বরাদ্দ করে। প্যাকেটটি ধীরে ধীরে ম্যাক্স_গ্রেড_প্যাকেট দ্বারা সেট আকারে বৃদ্ধি পায়। অতএব, একটি বৃহত্তর সর্বোচ্চ_বিহীন_প্যাকেট সেট করা ঠিক আছে। INSERTs এর জন্য আপনাকে ভালবাসবে।
রোল্যান্ডোমাইএসকিউএলডিবিএ 2

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

কেন আমাদের 11 দিয়ে গুণ করা উচিত, আপনি কি আরও কিছুটা ব্যাখ্যা করতে পারেন? লিঙ্কযুক্ত পোস্ট ইনোডাব বাফার সম্পর্কে - এটি কীভাবে প্যাকেটের আকারের সাথে সম্পর্কিত?
সিস্টেমপারাডক্স

4

ড্রুপালের ডেটাবেস সার্ভার প্রয়োজনীয়তা পৃষ্ঠা থেকে নেওয়া :

সিস্টেম ভেরিয়েবল সর্বোচ্চ_নিয়োগ_প্যাককেট কমপক্ষে 16M তে সেট করা প্রয়োজন হতে পারে। কিছু ব্যয়বহুল হোস্টিং পরিকল্পনা এই মানটিকে খুব কম সেট করে (মাইএসকিউএল ডিফল্টটি কেবলমাত্র 1 এম)। সেক্ষেত্রে আপনার আরও ভাল হোস্টিং পরিকল্পনা বেছে নেওয়া দরকার। দ্রুপাল 5 এর জন্য 1 এম এর মান যথেষ্ট হতে পারে।

শেয়ার্ড হোস্টিংয়ের কোনও সাইটের জন্য ঠিক থাকতে হবে।


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

2

এটি সেট করা একটু কৌশলী হতে পারে max_allowed_packet। সেই মানটি বের করার জন্য আমার এখনও একটি পদ্ধতি উপস্থিত হয়নি। সাধারণত, {cache}টেবিলগুলি থেকে সারি অন্তর্ভুক্ত এমন একটি ডাটাবেস স্ন্যাপশট পুনরুদ্ধার করার চেষ্টা করার সময় আমি এটির মধ্যে চলে যাই ।

আমার যখন এই সমস্যা হয় তখন আমি 4M এবং 8M এর মধ্যে একটি মান বাছাই করব। আমি মানটি বন্ধ না করা অবধি চালিয়ে যাচ্ছি। তবে, আমি জানি না কোনও ভাগ করা হোস্ট আপনার জন্য এই মানটি পরিবর্তন করবে কিনা।

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