ডিআরবিডি 10GigE এ ভয়ঙ্কর সিঙ্ক কর্মক্ষমতা


15

কিছু উচ্চ উপলব্ধ পরিষেবা হোস্ট করার জন্য আমি RAID অ্যারে (8 টি কোর, 16 গিগাবাইট র‌্যাম, 12x2 টিবি RAID6), 3 10GigE ইন্টারফেসের সাথে একত্রে সার্ভারগুলির একটি জুড়ি সেট আপ করেছি।

সিস্টেমগুলি বর্তমানে ডেবিয়ান 9.৯ চলছে, হুইজি ওল্ডস্টেবল (কারণ করোজেনক / পেসমেকার 8.x স্থিতিশীল বা পরীক্ষায় উপলব্ধ নয়)।

  • লোকাল ডিস্কের পারফরম্যান্স প্রায় 900 এমবি / গুলি লেখা, 1600 এমবি / গুলি পড়া।
  • মেশিনগুলির মধ্যে নেটওয়ার্ক থ্রুপুট 700MB / s এর বেশি।
  • আইএসসিএসআইয়ের মাধ্যমে প্রতিটি মেশিন অন্যের স্টোরেজে 700 এমবি / সেকেন্ডে লিখিত লিখতে পারে।

যাইহোক, আমি ডিআরবিডিকে যেভাবে কনফিগার করি না কেন, থ্রুপুটটি 100MB / s এর মধ্যে সীমাবদ্ধ। এটি দেখতে কিছু হার্ডকোডযুক্ত সীমা মত দেখাচ্ছে। আমি সেটিংগুলি টুইট করে নির্ভরযোগ্যভাবে পারফরম্যান্স হ্রাস করতে পারি, তবে এটি কখনই 1 জিবিটের বেশি হয় না (একবারে কয়েক সেকেন্ডের জন্য 122 এমবি / গুলি পৌঁছায়)। আমি সত্যিই এই এক উপর আমার চুল টানছি।

  • প্লেন ভ্যানিলা কার্নেল 3.18.24 amd64
  • drbd 8.9.2 c rc1-1 ~ bpo70 + 1

কনফিগারেশনটি দুটি ফাইলে বিভক্ত global-common.conf:

global {
        usage-count no;
}

common {
        handlers {
        }

        startup {
        }

        disk {
                on-io-error             detach;
         #       no-disk-flushes ;
        }
        net {
                max-epoch-size          8192;
                max-buffers             8192;
                sndbuf-size             2097152;
        }
        syncer {
                rate                    4194304k;
                al-extents              6433;
        }
}

এবং cluster.res:

resource rd0 {
        protocol C;
        on cl1 {
                device /dev/drbd0;
                disk /dev/sda4;
                address 192.168.42.1:7788;
                meta-disk internal;
        }

        on cl2 {
                device /dev/drbd0;
                disk /dev/sda4;
                address 192.168.42.2:7788;
                meta-disk internal;
        }
}

cat /proc/drbdদাস থেকে আউটপুট :

version: 8.4.5 (api:1/proto:86-101)
srcversion: EDE19BAA3D4D4A0BEFD8CDE 
 0: cs:SyncTarget ro:Secondary/Secondary ds:Inconsistent/UpToDate C r-----
    ns:0 nr:4462592 dw:4462592 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:16489499884
        [>....................] sync'ed:  0.1% (16103024/16107384)M
        finish: 49:20:03 speed: 92,828 (92,968) want: 102,400 K/sec

vmstat 2মাস্টার থেকে আউটপুট (উভয় মেশিন প্রায় সম্পূর্ণ নিষ্ক্রিয়):

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 14952768 108712 446108    0    0   213   254   16    9  0  0 100  0
 0  0      0 14952484 108712 446136    0    0     0     4 10063 1361  0  0 99  0
 0  0      0 14952608 108712 446136    0    0     0     4 10057 1356  0  0 99  0
 0  0      0 14952608 108720 446128    0    0     0    10 10063 1352  0  1 99  0
 0  0      0 14951616 108720 446136    0    0     0     6 10175 1417  0  1 99  0
 0  0      0 14951748 108720 446136    0    0     0     4 10172 1426  0  1 99  0

iperfদুটি সার্ভারের মধ্যে থেকে আউটপুট :

------------------------------------------------------------
Client connecting to cl2, TCP port 5001
TCP window size:  325 KByte (default)
------------------------------------------------------------
[  3] local 192.168.42.1 port 47900 connected with 192.168.42.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  6.87 GBytes  5.90 Gbits/sec

স্পষ্টতই প্রাথমিক সিঙ্ক্রোনাইজেশন কিছুটা ধীর হতে পারে বলে মনে করা হচ্ছে, তবে এই ধীর নয় ... তবুও এটি সিঙ্কের হারের মতো থ্রোটলের কোনও প্রয়াসে সত্যই প্রতিক্রিয়া দেখায় না drbdadm disk-options --resync-rate=800M all


1
আপনি কি এটি এ্যাসিঙ্ক তৈরির চেষ্টা করেছেন, তারপরে এটি বন্ধ করে দিয়ে আবার এটি পুনরায় বিলম্ব করার সিঙ্ক করেছেন?
জাভেয়ের নিকোললেট 19

উত্তর:


11

ডিআরবিডি (8.3.9 এবং আরও নতুন) এর নতুন সংস্করণগুলিতে একটি গতিশীল রাইসিঙ্ক নিয়ামক রয়েছে যার টিউনিং প্রয়োজন needs ডিআরবিডি পুরানো সংস্করণে সেটিংস সেট করেsyncer {rate;} যথেষ্ট ছিল; এখন এটি গতিশীল রিসাইঙ্ক গতির জন্য হালকা প্রস্তাবিত সূচনা স্থান হিসাবে বেশি ব্যবহৃত হয়েছে।

ডায়নামিক সিঙ্ক নিয়ামকটি ডিআরবিডি এর কনফিগারেশনের ডিস্ক বিভাগে "সি-সেটিংস" দিয়ে সুরযুক্ত ( $ man drbd.confএই প্রতিটি সেটিংসের বিশদ জানতে দেখুন )।

এই নোডগুলির মধ্যে 10 গিগাবাইট সহ এবং প্রোটোকল সি ব্যবহারের পরে কম অলসতা ধরে নিলে নিম্নলিখিত কনফিগারেশনে জিনিসগুলি দ্রুত স্থানান্তরিত হওয়া উচিত:

সংস্থান rd0 {
        প্রোটোকল সি;
        ডিস্ক
                সি-পূরণ-লক্ষ্য 10 এম;
                সি-সর্বাধিক হার 700 এম;
                সি-পরিকল্পনা-এগিয়ে 7;
                সি-মিনিট-রেট 4 এম;
        }
        cl1 এ {
                ডিভাইস / দেব / drbd0;
                ডিস্ক / দেব / এসডিএ 4;
                ঠিকানা 192.168.42.1:7788;
                মেটা-ডিস্ক অভ্যন্তরীণ;
        }

        cl2 এ {
                ডিভাইস / দেব / drbd0;
                ডিস্ক / দেব / এসডিএ 4;
                ঠিকানা 192.168.42.2:7788;
                মেটা-ডিস্ক অভ্যন্তরীণ;
        }
}

আপনি যদি এখনও খুশি না max-buffersহন তবে 12 কে আপ করার চেষ্টা করুন । আপনি যদি এখনও খুশি না হন তবে আপনি c-fill-target2 এম ইনক্রিমেন্টে পরিণত করার চেষ্টা করতে পারেন ।


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

এখনও অবধি, সি-পরিকল্পনা-অক্ষম করে একে শূন্যে সেট করে এবং সর্বাধিক-যুগের আকার এবং সর্বোচ্চ-বাফারগুলিকে বাড়িয়ে তোলা কৌশলটি করছে বলে মনে হচ্ছে।
wazoox

2
আপনি 20-এ সর্বোচ্চ-বাফার এবং 20-এম-সি-পূরণের লক্ষ্যমাত্রা বাড়িয়ে দিলে কি হবে? আমি বিশ্বাস করি ধীরে ধীরে এই দুটি মান বৃদ্ধি করা আপনাকে শেষ পর্যন্ত ফলাফলগুলি দেবে।
ম্যাট কেরেকজম্যান

এটা অধিকতর ভালো! এটি লিঙ্কটি পূরণ করে না (যা উত্সর্গীকৃত এবং যদিও এটি পূরণ করা ঠিক আছে) তবে আমি ইতিমধ্যে 400MB / s তে আছি। আমি এই সেটিংসের সাথে কিছুটা খেলছি ...
wazoox

1
250 থেকে 2500 পর্যন্ত সর্বাধিক-বাফার আপ করা আমার জন্য একটি রাত-দিন পার্থক্য করেছে (আমার অ-সমালোচনামূলক পারফরম্যান্স সেটআপে)
ডেভিডগো

7

অন্য কোথাও কেউ পরামর্শ দিয়েছেন যে আমি এই সেটিংসটি ব্যবহার করব:

        disk {
                on-io-error             detach;
                c-plan-ahead 0;
        }
        net {
                max-epoch-size          20000;
                max-buffers             131072;
        }

এবং অভিনয় দুর্দান্ত।

সম্পাদনা করুন: @ ম্যাট কেরেকজম্যান এবং অন্যান্যদের পরামর্শ অনুসারে, অবশেষে আমি এতে পরিবর্তন করেছি:

disk {
        on-io-error             detach;
        no-disk-flushes ;
        no-disk-barrier;
        c-plan-ahead 0;
        c-fill-target 24M;
        c-min-rate 80M;
        c-max-rate 720M;
} 
net {
        # max-epoch-size          20000;
        max-buffers             36k;
        sndbuf-size            1024k ;
        rcvbuf-size            2048k;
}

পুনরায় সংক্রমণের গতি বেশি:

cat /proc/drbd
version: 8.4.5 (api:1/proto:86-101)
srcversion: EDE19BAA3D4D4A0BEFD8CDE
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-
    ns:133246146 nr:0 dw:2087494 dr:131187797 al:530 bm:0 lo:0 pe:5 ua:106 ap:0 ep:1 wo:d oos:4602377004
        [>....................] sync'ed:  2.8% (4494508/4622592)M
        finish: 1:52:27 speed: 682,064 (646,096) K/sec

এই সেটিংগুলির সাথে পুনঃসংযোগের সময় লেখার গতি দুর্দান্ত (স্থানীয় রচনার গতি 80%, সম্পূর্ণ তারের গতি):

# dd if=/dev/zero of=./testdd bs=1M count=20k
20480+0 enregistrements lus
20480+0 enregistrements écrits
21474836480 octets (21 GB) copiés, 29,3731 s, 731 MB/s

পড়ার গতি ঠিক আছে:

# dd if=testdd bs=1M count=20k of=/dev/null
20480+0 enregistrements lus
20480+0 enregistrements écrits
21474836480 octets (21 GB) copiés, 29,4538 s, 729 MB/s

পরে সম্পাদনা করুন:

পুরো রিসাইঙ্কের পরে, পারফরম্যান্সটি খুব ভাল (ওয়্যার স্পিড রাইটিং, লোকাল স্পিড রিডিং)। রিসাইক দ্রুত (5/6 ঘন্টা) এবং কর্মক্ষমতা খুব বেশি ক্ষতি করে না (তারের গতি পাঠ, তারের গতি রচনা)। আমি অবশ্যই শূন্যের দিকে সি-পরিকল্পনা-সহ এগিয়ে থাকব। অ-শূন্য মান সহ, রিসাইঙ্কটি অনেক দীর্ঘ।


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

@ ম্যাটকেরেকজম্যান আমি সেটিংস পরিবর্তন করব, তবে প্রোডাকশন সেটিংসের সাথে খেলার আগে যত তাড়াতাড়ি সম্ভব একটি অনুকূল (সিঙ্কড) ক্লাস্টার পেতে চাই .... ডিফল্ট সেটিংসের অর্থ সিঙ্ক কমপক্ষে বেশ কয়েক দিন সময় নেয় এবং তারও বেশি সময় নেয় কয়েক সপ্তাহের জন্য, এটি কেবল গ্রহণযোগ্য নয়। প্রয়োজনীয় উত্পাদন থ্রুপুট 500MB / s হয়।
wazoox

4

গ-পরিকল্পনা-এগিয়ে গতিশীল সিঙ্ক হার নিয়ামক সক্ষম করতে একটি ধনাত্মক মান সেট করতে হবে। ডিস্ক c-plan-ahead 15; // 5 * RTT / 0.1s unit,in my case is 15 c-fill-target 24; c-max-rate 720M;

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