রেকর্ড আকারের 8-128 কেবি রেকর্ড আকারের জন্য এসডি কার্ডের এলোমেলোভাবে রচনা সম্পাদনা কেন 4 কেবি রেকর্ড আকারের নীচে নেমে আসে?


15

আমি যখন এলোমেলো লেখার জন্য এসডি কার্ডের পারফরম্যান্স যাচাই করি, তখন দেখতে পাচ্ছি যে রেকর্ড আকার 4 কিলোবাইটের জন্য পারফরম্যান্সটি বেশ খারাপ ( আমি iozone v3.430 এর সাথে র্যান্ডম রাইটিং পারফরম্যান্সটি পরিমাপ করেছি এবং বিভিন্ন নির্মাতার বেশ কয়েকটি ফ্ল্যাশ কার্ড পরীক্ষা করেছি। এটি আইওজোন কমান্ড, আমি ফাইলের আকার 50 এমবি দিয়ে পরিমাপ করতাম:

iozone -RaeI -i 0 -i 1 -i 2 -y 4k -q 1M -s 50m -o -f /tmp/testfile

ফাইলের আকার 50 এমবি সহ এটি ফলাফল:

আইওজন এবং 50 এমবি ফাইলের আকারের সাথে পরীক্ষা করা হলে এলোমেলো লেখার জন্য এসডি কার্ডের পারফরম্যান্স ড্রপ

প্রশ্ন: 8, 16, 32, 64 এবং 128 কেবি রেকর্ড আকারের এলোমেলো লেখার পারফরম্যান্স 4 কেবি রেকর্ড আকারের চেয়ে ধীর গতির কারণ কী?

পিটার ব্রিটেন একটি বৃহত ফাইল আকারের সাথে পরীক্ষা করার পরামর্শ দিয়েছিল, তাই আমি এটি ফাইলের আকার 500 এমবি দিয়েও চেষ্টা করেছিলাম। এটি ফলাফল:

আইওজন এবং 500 এমবি ফাইলের আকারের সাথে পরীক্ষা করা হলে এলোমেলো লেখার জন্য এসডি কার্ডগুলির পারফরম্যান্স ড্রপ

সামগ্রিক পারফরম্যান্স খারাপ হয়ে গেছে তবে ঘটনাটি এখনও ঘটে।

পার্টিশনগুলি 4 এমবি বাউন্ডারে প্রান্তিক করা হয়। ফাইল সিস্টেম 4 কেবি ব্লকের আকারের সাথে এক্সট 4। পরীক্ষার জন্য ব্যবহৃত পার্টিশনটি mmcblk0p2 হয়।

$ lsblk 
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0         7:0    0 953.7M  0 loop /mnt/sdb1
mmcblk0     179:0    0  14.9G  0 disk 
├─mmcblk0p1 179:1    0    56M  0 part /boot
├─mmcblk0p2 179:2    0   7.8G  0 part /
└─mmcblk0p3 179:3    0     7G  0 part /mnt/mmcblk0p3

$ cat /etc/fstab | grep mmcblk0p2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

$ sudo fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 15.9 GB, 15931539456 bytes
4 heads, 16 sectors/track, 486192 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000981cb

Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880    16506879     8192000   83  Linux
/dev/mmcblk0p3        16506880    31115263     7304192   83  Linux

$ mount | grep ext4 | grep root
/dev/root on / type ext4 (rw,noatime,data=ordered)

# tune2fs -l /dev/mmcblk0p2 | grep Block
Block count:              2048000
Block size:               4096
Blocks per group:         32768

আপডেট 1: এটি স্পষ্ট যে রেন্ডম লেখার জন্য বিশেষত ছোট রেকর্ড আকারের জন্য পারফরম্যান্স অনুক্রমিক লেখার তুলনায় উল্লেখযোগ্যভাবে কম। ন্যাণ্ড ফ্ল্যাশ স্টোরেজের মেমরি সেলগুলি পৃষ্ঠাগুলিতে গ্রুপ করা হয় এবং তাই মুছে ফেলা ব্লক বলে। সাধারণ পৃষ্ঠার আকার 4, 8 বা 16 কেবি হয়। যদিও নিয়ামকের পক্ষে একক পৃষ্ঠাগুলি লেখা সম্ভব, তবুও তথ্যটি মুছে ফেলা ছাড়া ওভাররাইট করা যায় না এবং একটি মুছা ব্লক হ'ল একটি ন্যান্ড ফ্ল্যাশ স্টোরেজ মুছতে পারে এমন ক্ষুদ্রতম একক। মুছার ব্লকের আকারটি সাধারণত 128 কেবি এবং 2 মেগাবাইটের মধ্যে থাকে। আধুনিক এসডি কার্ডগুলিতে, অল্প সংখ্যক মুছা ব্লককে সমান আকারের বৃহত্তর ইউনিটে একত্রিত করা হয় যা বরাদ্দ গোষ্ঠী বা বরাদ্দ ইউনিট বা বিভাগগুলি বলা হয়। সাধারণ সেগমেন্টের আকার 4 এমবি।স্টোরেজে প্রতিটি লিখন অপারেশন একটি সম্পূর্ণ বিভাগের জন্য একটি রিড-মডিফাই-রাইটিং অপারেশনের ফলাফল করে। উদাহরণস্বরূপ, 4 এমবি সেগমেন্ট আকারের সাথে একটি এসডি কার্ডের জন্য, এলোমেলো অবস্থানগুলিতে 4 কেবি ডেটা লেখার ফলে 1024 এর একটি লেখার পরিবর্ধন ফ্যাক্টর আসে SD এসডি কার্ডগুলির নিয়ন্ত্রকরা একটি অনুবাদ স্তর প্রয়োগ করে। যে কোনও আই / ও অপারেশনের জন্য, কন্ট্রোলার দ্বারা ভার্চুয়াল থেকে শারীরিক ঠিকানায় একটি অনুবাদ করা হয়। যদি কোনও বিভাগের অভ্যন্তরের ডেটা ওভাররাইট করা হয় তবে অনুবাদ স্তরটি বিভাগটির ভার্চুয়াল ঠিকানাটিকে অন্য মুছে ফেলা শারীরিক ঠিকানার সাথে পুনরায় তৈরি করে। পুরানো শারীরিক বিভাগটি নোংরা হিসাবে চিহ্নিত এবং মুছে ফেলার জন্য সারিযুক্ত। পরে, এটি মুছে ফেলা হলে, এটি পুনরায় ব্যবহার করা যেতে পারে। এসডি কার্ডগুলির নিয়ন্ত্রণকারীরা এলোমেলো লেখার ক্রিয়াকলাপটি বাড়ানোর জন্য সাধারণত একক বা একাধিক বিভাগকে ক্যাশে করে।যদি এসডি কার্ডগুলি একটি রুট ফাইল সিস্টেম সঞ্চয় করে, তবে কার্ডের নিয়ন্ত্রক সেগমেন্ট (গুলি) কে যেখানে রাইট অপারেশন (গুলি) সঞ্চালিত হয় সেগুলি, সেগমেন্টগুলি, যা ফাইল সিস্টেমের জন্য মেটাডেটা সঞ্চয় করে এবং যদি (যদি) উপলব্ধ) ফাইল সিস্টেমের জার্নাল। ফলস্বরূপ, একটি এসডি কার্ডের এলোমেলো লেখার পারফরম্যান্স মুছার ব্লকের আকার, বিভাগের আকার এবং বিভাগগুলির সংখ্যা, নিয়ামক ক্যাশে নির্ভর করে। 8, 16, 32, 64 এবং 128 কেবি রেকর্ড আকারের সাথে এলোমেলো লেখার পারফরম্যান্স কেন 4 কেবি রেকর্ড আকারের সাথে ধীর হয়ে যায় তা এই সমস্ত ব্যাখ্যা করে না।

আপডেট 2 (মায়াটের উত্তর): টেবিলের স্ক্রিনশটটি আমার নিজের কাজ। বর্তমানে, আমি একক বোর্ড কম্পিউটারগুলির ক্লাস্টারগুলি সম্পর্কে একটি নিবন্ধ / কাগজ লিখি কারণ তারা শিক্ষার্থী প্রকল্প এবং গবেষকদের জন্য সংস্থান সরবরাহের জন্য একটি আকর্ষণীয় বিকল্প। এই প্রসঙ্গে আমি একটি একক নোডের সিপিইউ, স্টোরেজ এবং নেটওয়ার্ক ইন্টারফেসের কার্যকারিতাও তদন্ত করেছি। আমি সমস্ত পরীক্ষিত এসডি কার্ড কিনেছি। আমি যে কোনও কার্ড ইনস্টল করেছি (ডিডির মাধ্যমে অনুলিপি করে) রাস্পিয়ান হুইজি (সংস্করণ 2014-06-20)। আমি নেটওয়ার্ক সেটিংস কনফিগার করার পরে এবং কিছু অতিরিক্ত প্যাকেজ ইনস্টল করার পরে (যেমন iozone), আমি অন্য এসডি কার্ডে পুরো এসডি কার্ডটি অনুলিপি করেছি।

আপডেট 3 (গ্যাব্রিয়েল সাউদার্নের উত্তর): ফলাফলগুলি একক রান থেকে। পদ্ধতিটি ছিল:

  1. রাস্পবেরি পাই মডেল বিতে কার্ড োকান
  2. সিস্টেম বুট করুন
  3. এসএসএইচ এর মাধ্যমে লগইন করুন
  4. আইওজোন পরীক্ষা চালানো শুরু করুন
  5. সিস্টেমটি থামিয়ে দিন এবং অন্য এসডি কার্ড দিয়ে চেষ্টা করুন

কয়েকটি কার্ড আমি ডাবল চেক করার জন্য কয়েকবার চেষ্টা করেছি। মাত্র কিছুটা ভিন্নতা ছিল। দুটি ঘটনা স্যামসাং কার্ড এবং একটি ভারব্যাটিম কার্ড বাদে সর্বদা ঘটে The

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

আপডেট 5: মুছা ব্লক আকার এবং বরাদ্দ ইউনিট (বিভাগ) আকার ঘটনাটির জন্য দায়ী নয়। আমি সব এসডি কার্ডের মুছে ফেলুন ব্লক আকার পরীক্ষিত pritcsd.py একটি ThinkPad X240 নোটবুক অভ্যন্তরীণ কার্ড রিডার এবং পরিশেষে একটি রাস্পবেরী Pi মডেল বি সঙ্গে সমস্ত কার্ড আউটপুট জন্য টুল মুষ্টি: Erase block size of mmcblk0 is 65536 bytes। এছাড়াও বিভাগের আকার সমস্ত পরীক্ষিত এসডি কার্ডের জন্য সমান। এটি 4 এমবি। এই তথ্যটি ফাইলটিতে পাওয়া যাবে /sys/class/mmc_host/mmc0/mmc0*/preferred_erase_size। আমার মতে এটি বেশ অসাধারণ যে এই সমস্ত কার্ডের ব্লক আকার এবং বিভাগের আকার একই রকম। এর মধ্যে আমি পরীক্ষিত কার্ডের প্যাকেগিংগুলি থেকে পণ্য আইডি / আইটেম নম্বর সংগ্রহ করেছি। এখানে তারা.

পরীক্ষিত কার্ডগুলির প্যাকেজিং থেকে পণ্য আইডি / আইটেম নম্বর

আপডেট 6: কিংস্টনের প্রযুক্তিগত সমর্থন আমাকে লিখেছিল যে পরীক্ষিত কিংস্টন কার্ডের নিয়ন্ত্রণকারীরা (এবং সম্ভবত অন্যান্য কার্ডগুলির মধ্যে) 4 কেবি আকারের ফাইলগুলির জন্য অনুকূলিত হয়েছে। সঠিক নিয়ামক বাস্তবায়ন গোপনীয়। কিংস্টনের উত্তর আমার কাছে সেরা best সানডিস্ক কখনই আমার সমর্থন অনুরোধে সাড়া দেয়নি এবং আমি সনি, স্যামসুং বা ভারব্যাটিমের কোনও যোগাযোগ খুঁজে পেতে পারি নি


1
এটা একটি মজার প্রশ্ন। আপনি প্রতিবেদনের ফলাফলগুলি কি একাধিক রানের তুলনায় গড়, বা কেবল একটি রান থেকে? ফলাফলগুলির মধ্যে কতটা প্রকরণ রয়েছে তা জানতে আগ্রহী হব।

1
লজিকাল রিম্যাপিং এবং পরিধান-সমতলকরণের ফলস্বরূপ, প্রশ্নটিতে এই দাবি "উদাহরণস্বরূপ, 4 এমবি সেগমেন্ট আকারের একটি এসডি কার্ডের উপর, এলোমেলো স্থানে 4 কেবি ডেটা লেখার ফলে 1024 এর একটি লেখার পরিবর্ধক ফ্যাক্টর আসে" " মিথ্যা।
বেন ভয়েগট

1
আমার অভিজ্ঞতার পারফরম্যান্স পরীক্ষায় আপনি ছোট আকারের পরীক্ষায় সমস্ত ধরণের অপ্টিমাইজেশন এবং ক্যাশে হিট করেছেন। বিশেষত, আমি বিশ্বাস করতে পারি যে ধীর ফ্ল্যাশযুক্ত নির্মাতাদের ফাইল সিস্টেম আপডেটগুলি দক্ষতার সাথে পরিচালনা করতে এই অপ্টিমাইজেশনের প্রয়োজন হবে, তবে সমস্ত নিয়ামকের জন্য পাবলিক ডকুমেন্টেশন না থাকার কারণে এটি প্রমাণ করতে পারছি না। এটি বলেছিল, আমি লক্ষ্য করেছি আপনি কেবল একটি 50MB ফাইল ব্যবহার করছেন। আপনি কি এর চেয়ে বড় আকারের ফাইলগুলি ( আইওজোন.আর / ডকস / আইওজোন_মাসওয়ার_98 . pdf এ "চালানোর নিয়ম অনুসারে ) চেষ্টা করেছেন?

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

1
হ্যাঁ - ইতিমধ্যে পৃষ্ঠাটিতে এই সমস্যাটি চিহ্নিত করেছে ... আমি মনে করি আপনি সম্ভবত FAT32 এর সাথে কিছু মিস করছেন, যদিও: কার্ডগুলি FAT32 এ পর্যবেক্ষণ করা অ্যাক্সেস প্যাটার্নগুলির জন্য "অনুকূলিত হয়েছে" এবং কেবল FAT32 এর জন্য নয়। এফএটি-তে একটি সাধারণ অ্যাক্সেস প্যাটার্ন হ'ল একটি নতুন ফাইল লিখতে হবে - যার জন্য ফাইলের ডেটা প্রবাহিত প্লাস একটি ফ্যাট আপডেট প্রয়োজন। FAT আপডেটে সাধারণত অল্প সংখ্যক ব্লক জড়িত থাকে। আমি যদি কোনও এফটিএল লিখি, তবে আমি FAT সম্পাদন করতে সহায়তা করার জন্য আমার পৃষ্ঠার আকারের চেয়ে ছোট যে কোনও লেখাগুলি অনুকূল করতে চাই।

উত্তর:


4

এসডি কার্ডের ঘরগুলির কাঠামো:

সলিড-স্টেট ইলেকট্রনিক্সে, একটি ঘর মেমরি উপাদান যা এক বা একাধিক তথ্য বিট সংরক্ষণ করতে সক্ষম হয়, ব্যবহৃত প্রতি প্রযুক্তিতে সেল প্রতি বিটের সংখ্যা নির্ভর করে। (এসএলসি / এমএলসি / টিএলসি)

নির্মাতারা এটির কাঠামো পরিচালনা করতে ফ্ল্যাশ মেমোরিতে বিভিন্ন প্রযুক্তি ব্যবহার করে, সর্বাধিক ব্যবহৃত কাঠামোটি টিএলসি এবং এমএলসি কারণ এই প্রযুক্তির বিশেষত টিএলসি সম্পর্কিত সস্তা ব্যয়ের কারণে।

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

এটি হার্ডওয়্যার লাইফের উপরও গতিতে সরাসরি প্রভাব ফেলে।

এসএলসি, একক স্তরের ঘর (1 বিট)

Generally 100000 write erase cycles
Erase time: 1-2.5ms

এমএলসি, মাল্টিলেভেল সেল (২ বা আরও বিট)

Anywhere from 3000 to 15000 write erase cycles
Erase time: 2.5-3.5ms

টিএলসি, ট্রিপল লেভেল সেল (3 বিট)

Anywhere from 1000 to 5000 write/erase cycles
Erase time: 4-5ms

বিঃদ্রঃ :

যে কোনও ক্ষেত্রে কোষগুলিতে 1, 2 বা 3 বিট থাকতে পারে আপনার এসডি কার্ড নিয়ামক চিপটি রেকর্ড আকার এবং কোষের ক্ষমতার উপর নির্ভর করে আরও অ্যাক্সেস চক্র সম্পাদন করতে হবে।

আপনার স্যামসং কার্ডগুলি সম্ভবত একটি এসএলসি প্রযুক্তি ব্যবহার করছে বা তাদের একটি শক্তিশালী নিয়ামক চিপ রয়েছে।

নোট 2:

আমি কিছু পরীক্ষার চেষ্টা করেছি যেমন আপনি পার্টিশনগুলি ext4 ব্লক আকার 4 কেবি এবং 1 কেবি দিয়ে করেন তবে বড় পার্থক্য ছাড়াই


স্যামসুং কার্ড এবং ভারব্যাটিম কার্ড ভোক্তা পণ্য এবং শেষ বছরগুলিতে, এই জাতীয় ডিভাইসে এসএলসি মেমরি সাধারণ ছিল না। স্যামসাং কার্ডগুলি এমবি-এমপি 16 ডি এবং এমবি-এমএস 16 ডি এবং ভারব্যাটিম কার্ডের নিবন্ধ নম্বর 44007
নেভারল্যান্ড

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