Ext4 ব্যবহার এবং কর্মক্ষমতা


11

আমি কার্বন এবং গ্রাফাইট চালিত মেশিনগুলির একটি ক্লাস্টার পেয়েছি যা আমাকে আরও স্টোরেজ করার জন্য স্কেল করতে হবে তবে আমি নিশ্চিত না যে আমার স্কেল বা আউট বাড়ানোর দরকার আছে কিনা তা নিশ্চিত।

ক্লাস্টারটি বর্তমানে গঠিত:

  • 1 রিলে নোড: সমস্ত মেট্রিক্স এবং প্রাসঙ্গিক স্টোরেজ নোডে ফরোয়ার্ড দেয়
  • 6 স্টোরেজ নোড: সমস্ত হুইস্পার ডিবি ফাইলগুলি বাড়ি

সমস্যাটি হ'ল মনে হয় ডিস্কগুলি যখন 80% ব্যবহারের আশেপাশে এসেছিল তখন পারফরম্যান্স একটি ক্লিফের বাইরে পড়ে। ক্লাস্টার রাইটিং আইওপিএস কাছাকাছি স্থির 13 কে থেকে আরও বিশৃঙ্খলা গড়ে প্রায় 7k এবং আইওয়েটের সময় গড় 54% নেমে আসে।

আমি আমাদের কনফিগার রেপো দেখেছি এবং এপ্রিলের শুরু থেকে কোনও পরিবর্তন হয়নি, সুতরাং এটি কোনও কনফিগার পরিবর্তনের ফলাফল নয়।

প্রশ্ন: ডিস্কের আকার বাড়ানো কি আইও পারফরম্যান্সকে আবার নিয়ন্ত্রণে আনবে, বা আমার আরও স্টোরেজ নোড যুক্ত করা দরকার?

দ্রষ্টব্য: এখানে কোনও এসএসডি নেই, কেবল প্রচুর স্পেন্ডল।

প্রাসঙ্গিক গ্রাফ:

ডিস্ক ব্যবহার iops সিপিইউ কার্বন ক্যাশে প্রতি সেকেন্ডে মেট্রিক্স

পরিসংখ্যান এবং স্টাফ:

e2freefrag:

[root@graphite-storage-01 ~]# e2freefrag /dev/vda3
Device: /dev/vda3
Blocksize: 4096 bytes
Total blocks: 9961176
Free blocks: 4781849 (48.0%)

Min. free extent: 4 KB
Max. free extent: 81308 KB
Avg. free extent: 284 KB
Num. free extent: 19071

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :          4008          4008    0.08%
    8K...   16K-  :          1723          3992    0.08%
   16K...   32K-  :           703          3495    0.07%
   32K...   64K-  :           637          7400    0.15%
   64K...  128K-  :          1590         29273    0.61%
  128K...  256K-  :          4711        236839    4.95%
  256K...  512K-  :          2664        265691    5.56%
  512K... 1024K-  :          2359        434427    9.08%
    1M...    2M-  :           595        213173    4.46%
    2M...    4M-  :            75         49182    1.03%
   64M...  128M-  :             6        118890    2.49%

e4defrag:

[root@graphite-storage-01 ~]# e4defrag -c /dev/vda3
<Fragmented files>                             now/best       size/ext
1. /opt/graphite/storage/graphite.db            17/1              4 KB
2. /var/log/cron                                13/1              4 KB
3. /var/log/wtmp                                16/1              4 KB
4. /root/.bash_history                           4/1              4 KB
5. /var/lib/rpm/Sha1header                      10/1              4 KB

 Total/best extents                             182256/159981
 Average size per extent                        183 KB
 Fragmentation score                            2
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This device (/dev/vda3) does not need defragmentation.
 Done.

iostat:

[root@graphite-storage-01 ~]# iostat -k -x 60 3
Linux 3.10.0-229.7.2.el7.x86_64 (graphite-storage-01)     07/05/2016      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.99    0.00    2.54   29.66    0.35   59.46

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00   100.34  177.48 1808.94  2715.66  7659.19    10.45     0.26    0.13    0.65    0.08   0.23  46.14

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.17    0.00    7.00   73.21    0.58   13.04

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00    23.87  672.40  656.47  8729.87  2752.27    17.28     7.36    5.50    2.72    8.35   0.73  96.83

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.06    0.00    7.31   73.03    0.59   12.01

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00    42.68  677.67  614.88  8634.93  2647.53    17.46     6.66    5.15    2.72    7.83   0.74  96.08

df:

[root@graphite-storage-01 ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/vda3       39153856 33689468   3822852  90% /
devtmpfs         1933092        0   1933092   0% /dev
tmpfs            1941380        0   1941380   0% /dev/shm
tmpfs            1941380   188700   1752680  10% /run
tmpfs            1941380        0   1941380   0% /sys/fs/cgroup
/dev/vda2         999320     2584    980352   1% /tmp
[root@graphite-storage-01 ~]# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/vda3      2490368 239389 2250979   10% /
devtmpfs        483273    304  482969    1% /dev
tmpfs           485345      1  485344    1% /dev/shm
tmpfs           485345    322  485023    1% /run
tmpfs           485345     13  485332    1% /sys/fs/cgroup
/dev/vda2        65536     22   65514    1% /tmp

সম্পাদনা: স্টোরেজ নোডগুলির মধ্যে একটিকে আমি আকার বদলেছি, তবে এর কোনও প্রভাব পড়ে নি। আমি cachestat[ https://github.com/brendangregg/perf-tools + ( পারফুল সরঞ্জামগুলির সংগ্রহ) এর মধ্যেও ইউটিলিটিটি পেয়েছি যা আমাকে ভিএফএস ক্যাশের অভ্যন্তরে দেখেছে । এই মুহুর্তে দেখে মনে হচ্ছে যে আমি আমার স্টোরেজ সরবরাহ করতে পারে এমন আইও থ্রুপুটটির সীমাতে পৌঁছেছি।

এই মুহুর্তে আমি মনে করি আমাকে হয় আরও ক্লাস্টার সদস্যদের কাছে স্কেল চালিয়ে যেতে হবে, বা আরও লেখার দক্ষ সময়-সিরিজের স্টোরেজ সমাধান সন্ধানের জন্য দেখুন।

উদাহরণ থেকে আউটপুট cachestat:

storage-01 [resized disk]
    HITS   MISSES  DIRTIES    RATIO   BUFFERS_MB   CACHE_MB
    9691    14566     7821    40.0%          160       2628
   36181    14689     7802    71.1%          160       2631
    8649    13617     7003    38.8%          159       2628
   15567    13399     6857    53.7%          160       2627
    9045    14002     7049    39.2%          160       2627
    7533    12503     6153    37.6%          159       2620

storage-02 [not resized]
    HITS   MISSES  DIRTIES    RATIO   BUFFERS_MB   CACHE_MB
    5097    11629     4740    30.5%          143       2365
    5977    11045     4843    35.1%          142       2344
    4356    10479     4199    29.4%          143       2364
    6611    11188     4946    37.1%          143       2348
   33734    14511     5930    69.9%          143       2347
    7885    16353     7090    32.5%          143       2358

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

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


হার্ডওয়্যার সেটআপ, ওএস এবং এসএসডি টাইপ কী?
ew white

@wwite উপরে থেকে নীচে: Centos7, ওপেনস্ট্যাক, কেভিএম, স্পিনিং মরিচা। আমরা ক্লাউড গিয়ারের একটি ব্যক্তিগত ক্লাস্টার পেয়েছি এবং সেই স্টোরেজ নোডের প্রতিটি ডিস্ক 24 ডিস্ক স্টোরেজ অ্যারে দ্বারা ব্যাক করা হয়।
সামিটিচ

উত্তর:


11

আপনি এসএসডি চালাচ্ছেন এমন শোনায়, এতে পূর্ণ হওয়ার সাথে সাথে এর কিছু মজার পারফরম্যান্স বৈশিষ্ট্য থাকতে পারে। সত্য যখন 6/1 এর কাছাকাছি ব্যবহার হ্রাস পেয়েছিল, তখন পারফরম্যান্স স্বাভাবিক অবস্থায় ফিরে যায় নি, সেই তত্ত্বটিকে আরও শক্তিশালী করে।

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

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

আপনি সম্ভবত আরও কিছু সময়ের জন্য চালিত ড্রাইভগুলি ব্যবহার করে পালিয়ে যেতে সক্ষম হতে পারেন, যদি আপনি fstrimড্রাইভটি বলতে "আপনি অবশ্যই এই মুহুর্তের সমস্ত মুহূর্তে এখনই মুছতে পারেন" বলে ড্রাইভটি বলার জন্য এমন কিছু তৈরি করে থাকেন তবে যদিও এটি সিস্টেমে এটি করা হচ্ছে আপনাকে একই সময়ে অন্যান্য জিনিসগুলি করা দরকার যাতে খুব ভালভাবে নেমে না যায় (আপনি fstrimম্যানপেজে পারফরম্যান্সের সতর্কতাগুলি ভালভাবে লক্ষ্য করতে চাই )।

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


1
তারা এসএসডি নয়, সেই পরিসংখ্যানগুলি সমস্ত 6 স্টোরেজ নোড থেকে একত্রিত হয়েছে এবং তারা প্রচুর স্পিনিং জংয়ের শীর্ষে চলেছে।
সামিটিচ

এটা অনেক মরিচা।
দোলা

এগুলি নোডগুলি আমাদের গণনা হোস্টগুলিতে সমানভাবে ছড়িয়ে পড়েছে, সুতরাং তাদের ভার্চুয়াল ডিস্কগুলি প্রতিটি 24 ডিস্ক RAID 10 দ্বারা সমর্থিত হয় I ।
সামমিতাচ

3

80-85% এর উপরে ব্যবহারের সাথে পারফরম্যান্সের দৃষ্টিকোণ থেকে Ext3 / 4, ক্ষতিগ্রস্থ হওয়া ভাল জানেন। এটি বর্ধিত খণ্ডন এবং রাইটব্যাকের কার্যক্ষমতা হ্রাসের কারণে।

আপনি কি দুটি iostat -k -x 60 3আউটপুট সরবরাহ করতে পারবেন , একটি যখন ৮০% ক্ষমতার অধীনে এবং একটি যখন ৮০% এর বেশি হয়?

সম্পাদনা: আপনার থেকে e2freefragমনে হয় /dev/vda3প্রচুর পরিমাণে মুক্ত স্থান রয়েছে। আপনি আউটপুট যোগ করতে পারেন dfএবং df -i?

যাইহোক, আপনার iostatফলাফলগুলি, আপনার গ্রাফগুলির সাথে মিলিত (বিশেষত "ডিস্ক আইওপিএস") বেশ আকর্ষণীয়। দেখে মনে হচ্ছে আপনার কাজের চাপটি অনেকটা কেন্দ্রিক লেখা; যখন> ইস্যু করা মোট IOPS এর 95% রচনা থাকে, আপনার কোনও সমস্যা নেই। যাইহোক, যখন আপনার কর্মক্ষমতা হ্রাস পায়, তখন আপনার ডিস্কগুলি নিয়মিত পড়া আইওপিএস সরবরাহ করতে শুরু করে। এই স্বতঃস্ফূর্ত পড়া / লেখাগুলি ডিস্কের বৃহত্তর লেখায় একাধিক ছোট লেখার সংমিশ্রণের ক্ষমতাকে বাধাগ্রস্থ করে (সাধারণত পাঠগুলি ব্লক করে অপারেশনগুলি), এতে অনেক ধীর গতির কর্মক্ষমতা দেখা দেয় to

উদাহরণস্বরূপ, প্রদর্শিত মুষ্টিগুলির ফলাফলটি দেখান iostat: যখন মোট ডিস্ক আইওপিএস লেখার দ্বারা প্রভাবিত হয় (যেমন এই ক্ষেত্রে), আপনার avgqu-szএবং awaitউভয়ই খুব কম।

তবে দ্বিতীয় এবং তৃতীয়টিতে iostatআমরা আরও অনেকগুলি পঠন দেখতে পাই যা, ব্লকিং / স্টলিং অপারেশনগুলি ( rrqm/sকলামটি দেখুন: এটি 0 দেখায়, সুতরাং কোনও পাঠক আপনার ক্ষেত্রে একীভূত হতে পারে না), বিলম্ব ( await) এবং থ্রুপুট উভয়কে ব্যহত করে (কেবি / গুলি) ।

হোস্টটি ইনোড ক্যাশে শেষ হওয়ার পরেও একইরকম আচরণ দেখেছি, সম্ভবত সংক্ষিপ্ত সংখ্যক ছোট ফাইল সংরক্ষণ করা হয়েছে। আপনার সিস্টেমে ডেটা ক্যাশে ব্যয় করে ইনোড / ডেন্ট্রি ক্যাশে পছন্দ করতে টিউন করতে, জারি echo 10 > /proc/sys/vm/vfs_cache_pressureকরার চেষ্টা করুন এবং কয়েক মিনিট অপেক্ষা করুন: এটি কি কিছু পরিবর্তন করে?


iostatকোনও স্টোরেজ নোডের নীচে না থাকায় আমি সত্যিই কেবলমাত্র '80% এরও বেশি' প্রদান করতে পারি [আমার প্রশ্নের নীচে যুক্ত] আমার 80% এর নিচে ব্যবহারের সাথে অন্যান্য দৃষ্টান্ত রয়েছে, তবে এগুলির মতো কাজের চাপ সহ কিছুই নেই।
সামিটিচ

আমি আমার উত্তর আপডেট করেছি। একবার দেখুন।
shodanshok

হাই, কোন খবর? আমি
আসল

গতকাল একটি অফসাইট মিটিংয়ের দিকে টানতে পেরেছি এবং এই সমস্যাটি ব্যাক বার্নার-এডি এটিএম। আমি কীভাবে এটি সমাধান করে তা অবশ্যই আপনাকে জানাব।
সাম্মিচ

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