ব্যবহারকারীরা অভিযোগ করেন যে মাইএসকিএলডাম প্রগতিতে থাকলে সিস্টেমটি ধীর গতিতে চলে


9

এমওয়াইএসকিউএল ডাটাবেস (আইবিডাটা 1) 73৩ জিবি আকারের এবং আইএনএনওডিবি টেবিলগুলির জন্য উইন্ডোজ ২০০ O ও / এস-তে ডেডিকেটেড ডাটাবেস সার্ভার হিসাবে চালনার জন্য কনফিগার করা হয়েছে। আমরা mysqldump mysqldump --skip-opt --quick --single-ਲੈਣ-ক্রিয়েট-বিকল্পগুলি - প্রসারিত-সন্নিবেশ - পরিবর্তনযোগ্য কী - অ্যাড-ড্রপ-টেবিল - অসম্পূর্ণ-সন্নিবেশ - ব্যবহার করে ব্যাকআপটি চালাচ্ছি সেট-চরসেট - সংকোচনের - - লগ-ত্রুটি = Proddb0635.err -u মূল -pjohndoe Proddb> \ devNas \ devNas \ sllbackup \ LIVE \ db \ Proddb0635.sql

ব্যাকআপ ফাইল Proddb0635.sql ডাটাবেস সার্ভার থেকে একটি পৃথক সার্ভারে সংরক্ষণ করা হয়। র‌্যামটি 12 জিবি। আইএনএনওডিবি বাফার পুলের আকার 6 জিবি। অতিরিক্ত میم.পুলটি 32 এমবি। ক্যোয়ারী ক্যাশের আকার 2 জিবি নেট বাফার দৈর্ঘ্য 16 এম সর্বোচ্চ। প্যাকেটের আকার 1 জিবি।

mysql সংস্করণটি 5.0.67 .6

যখন ব্যাকআপ চলছে না তখন ব্যবহারকারীরা পারফরম্যান্সে খুশি।

যখন ব্যাকআপ চলছে তখন INNODB বাফার পুলের হিটের হার 100% এর কাছাকাছি। কোনও মুলতুবি পড়া বা মুলতুবি রচনা নেই। ইনডোডবি ওয়েট ফ্রি হ'ল সিপিইউ ব্যবহার কম ন্যূনতম 9% থেকে সর্বোচ্চ 15% ক্যোয়ারী ক্যাশে হিট রেট মাইএসকিএলব্যাকআপ চলছে বা না ছাড়াই প্রায় 40% কম। বর্তমানে উইন্ডোজ টাস্ক ম্যানেজার প্রদর্শন করছে যে 10 জিবি র‌্যাম ব্যবহার করা হচ্ছে। আমি কেবল 2 জিবি র‌্যামের সাহায্যে ক্যোয়ারী ক্যাশে বাড়িয়েছি? মাইএসকিএলডি-এনটি 9.2 জিবি র‌্যাম নিচ্ছে এবং মাইএসকিএলডাম্প 5 এমবি র‌্যাম নিচ্ছে। অ্যালোস, উল্লেখ করেছেন যে --compress বিকল্পের উপস্থিতি বা অনুপস্থিতিতে ডাম্প ফাইলের আকার একই।

আমি কি আইএনএনওডিবি বাফার পুলের আকার হ্রাস করব?

ধন্যবাদ

উত্তর:


8

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

স্থানীয় ডিস্কে ব্যাক আপ করে এটি সমাধান করা যেতে পারে, তারপরে রিমোট মেশিনে ফাইলটি টানতে হবে।


ধন্যবাদ, মর্ডেনি। আমরা আমাদের ডিস্কগুলি সান এ সংরক্ষণ করেছি oes
দবচাচ

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

আপনার 1 ম পরামর্শ: # টি সিস্টেম ক্যাশে পরিবর্তিত হয়নি। LUN সম্পর্কিত, আমি এটি আমার সহকর্মীদের কাছে জানিয়ে দেব যারা সিস্টেম ও নেটওয়ার্ক টিমে কাজ করে।
dbbhacha

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

7

আপনার পরিস্থিতি বিবেচনা করে মাইএসকিএলডাম্পের পারফরম্যান্সের উন্নতি সম্পর্কে আমার কিছু ধারণা রয়েছে। আপনার আদেশ এখানে:

মাইএসকিএলডম্প - স্কিপ-অপ্ট - কুইক - সিজনেল-লেনদেন - ক্রিয়েট-বিকল্পগুলি - এক্সটেন্ডেড - সন্নিবেশ - কী - অ্যাড-ড্রপ-টেবিল - অসম্পূর্ণ সন্নিবেশ - সেট-চরসেট - কমপ্রেস - -লগ-ত্রুটি = Proddb0635.err -u মূল -pjohndoe Proddb> \ devNas \ devNas q sllbackup \ LIVE \ db \ Proddb0635.sql

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

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

এরপরে আমি দেখতে পাচ্ছি আপনি -সিংল-লেনদেনের পতাকাটি ব্যবহার করছেন। এটি অতিরিক্ত সিপিইউ সৃষ্টি করতে চলেছে কারণ এটি মাইএসকিল্ডম্পের অংশ হিসাবে প্রতিটি নির্বাচনের উপর পরীক্ষা করে চলেছে।

পারফরম্যান্সের সাথে এর কোনও যোগসূত্র নেই, তবে আপনি - ডিজেবল-কীগুলি ব্যবহার করছেন যা কেবল মাইআইএসএএম ( ম্যানুয়াল ) এ কাজ করে ।

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


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

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

আমি আনন্দিত যে এই সাহায্য করছে। শুভ কামনা.
এলোমেলো

এখানে নিম্নলিখিত পরিস্থিতিটি বোঝার জন্য আমার সাহায্যের প্রয়োজন: মাইএসকিএল ডাটাবেসটি সার্ভার এ রয়েছে। মাইএসকিএলডাম সার্ভার বি-তে চালিত হয় যা সার্ভার সি-তে ডেটা ফেলে দেয় আমাদের কাছে সার্ভার এ থেকে সার্ভার সি-তে ডেডিকেটেড এনআইসি আছে এটি কি সঠিক? আমি নিশ্চিত ছিলাম না তাই গতকাল রাতে মাইসকিल्डম্পটি সার্ভার এ-তে চলছে I
ধবছা

mysqldump একটি 'ক্লায়েন্ট ইউটিলিটি' যার অর্থ আপনি এটি কোনও হোস্ট থেকে চালাতে পারেন যা ডাটাবেসে টেবিলগুলি অ্যাক্সেস করার সুবিধা রয়েছে privile আপনার জন্য কৌশলটি হ'ল সার্ভার সি এর শেল লক্ষ্য করে সার্ভার এ এর ​​টেবিলগুলি থেকে মাইএসকিএলডাম্প চালানো হবে। অবশ্যই, আপনি সার্ভার সি থেকে যে স্কিমাটি ফেলে দিতে চান তাতে অ্যাক্সেস দিতে হবে।
এলোমেলো

2

পর্যবেক্ষণ # 1

ইনোডিবি-র বিপরীতে মাইসকিल्डম্প করার সময় কিছুটা মনে রাখা উচিত।

ইনোডিবি বাফার পুলে যে নোংরা পৃষ্ঠাগুলি বিদ্যমান তা প্রথমে ডিস্কে ফ্লাশ করা উচিত। একটি মাইএসকিএলডাম্প একটি ইনোডিবি টেবিলের ফ্লাশিংকে ট্রিগার করবে যা এর মধ্যে নোংরা পৃষ্ঠাগুলি রয়েছে।

ইনোডাব_ম্যাক্স_ডার্টি_পেজ_প্যাক্ট নামে একটি সার্ভার অপশন রয়েছে । ডিফল্ট মান হ'ল মাইএসকিউএল 5.5 এবং 5.5 এর পূর্বে মাইএসকিউএলের সংস্করণগুলিতে 90 টি। উত্পাদনের পরিবেশে ডিফল্ট মানতে এই নম্বরটি রাখা ঠিক হবে।

InnoDB বাফার পুলে আপনার প্রচুর নোংরা পৃষ্ঠা রয়েছে কিনা তা দেখার জন্য এটি চালান:

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_dirty';

বিটিডাব্লু এর একটি পৃষ্ঠাগুলি 16K এর শো হিসাবে রয়েছে:

SHOW GLOBAL STATUS LIKE 'Innodb_page_size';

যখন এটি InnoDB এবং mysqldump আসে, আপনি দুটি পরিস্থিতিতে এই সংখ্যাটি হ্রাস করতে পারেন।

চূড়ান্ত 1: এটি স্থায়ীভাবে 0 এ সেট করুন

এটি কেবল আমার.inii এ যুক্ত করুন:

[mysqld]
innodb_max_dirty_pages_pct=0

এটি InnoDB বাফার পুলকে মাতাল করে রাখবে। ইন্নোডিবি টেবিলটি ফেলে দেওয়া হচ্ছে যেটি ফেলে দেওয়া হচ্ছে তা ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ফেলা হবে কারণ মাইএসকিএলডামে এটি পরিচালনা করার আগে কয়েকটা নোংরা পৃষ্ঠাগুলি ফ্লাশ করা দরকার।

একমাত্র ত্রুটি যদি আপনি উচ্চ পাচার হওয়া ডিবি থেকে mysqldump করেন তবে নোংরা পৃষ্ঠাটি ঘন ঘন ঘন সঞ্চারিত করার কারণে I / O লেখার ক্ষেত্রে আরও কিছুটা বাড়তে পারে। এটি চালিয়ে মাইএসকিএল পুনরায় চালু না করে আপনি এটি নির্ধারণ করতে পারেন:

SET GLOBAL innodb_max_dirty_pages_pct = 0;

12-24 ঘন্টার জন্য সেটিংসটি ছেড়ে দিন, যদি লেখার পারফরম্যান্স গ্রহণযোগ্য হয় তবে আপনি যেতে ভাল। যদি তা না হয় তবে এটি দিয়ে আবার সেট করুন:

SET GLOBAL innodb_max_dirty_pages_pct = 90;

সার্কিটস 2: মাইএসকিএলডাম্পের প্রায় 1 ঘন্টা আগে এটিকে সেট করুন

SET GLOBAL innodb_max_dirty_pages_pct = 0;

মাইএসকিলডাম্প চালান

SET GLOBAL innodb_max_dirty_pages_pct = 90;

পর্যবেক্ষণ # 2

আপনার কাছে --complete-সন্নিবেশ একটি mysqldump বিকল্প হিসাবে। এটি VALUES ধারাটির আগে প্রতিটি INSERT স্ট্যাটিমেটে কলামের নাম এম্বেড করবে। এমনকি - এক্সটেন্ডেড-সন্নিবেশ সহ সারিগুলির প্রতিটি ব্যাচ সন্নিবেশ করাতে কলামের নামগুলি মাইএসকিএলডম্পে প্রেরণ করা হয়। আপনি - কমপ্লিট-সন্নিবেশ সরিয়ে mysqldump এ প্রেরিত বাইটের পরিমাণ হ্রাস করতে পারবেন।

সুপারিশ

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


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

ইনোডাব_বফার_পুল_ডার্টি_পেজগুলি ব্যাকআপ শুরু হওয়ার ঠিক আগে খুব বেশি ছিল না। এটি প্রায় 9 থেকে সর্বোচ্চ হয়। 196. মাস্টার-স্লেভও একটি ভাল সুপারিশ।
dbachacha

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