ইমেজম্যাগিক রূপান্তর এবং লো র‍্যাম


12

চিত্রগ্রাহক প্যাকেজের জন্য দয়া করে নিম্নলিখিত কমান্ডটি বিবেচনা করুন:

sudo convert -resize 460x200 /path/to/test1.jpg /path/to/test2.jpg

এখন test1.jpgএকটি হল মোটামুটি বড় ইমেজ (12.5MB), কিন্তু আকারের শোনা যায় না, কিন্তু সার্ভারটি আমি থেকে কাজ করছি শুধুমাত্র (মেমরি 1G হয়েছে আমাজন EC2 t2.micro যদি এটা সাহায্য করে)

কোনও ত্রুটি নিক্ষেপ করা হচ্ছে না, এবং এখনও test2.jpgতৈরি করা হচ্ছে না । আমি এটি ছোট চিত্রগুলির সাথে পরীক্ষা করেছি এবং এটি দুর্দান্ত কাজ করে। আমি ভেবে দেখেছি 1 জি যদি মেসেজটি একটি আকার পরিবর্তন করতে পারে তবে তা না?

আমার বিকল্পগুলি কী কী, আমাকে আরও স্মৃতি পেতে হবে বা আমি কিছু মিস করছি?

কোন পরামর্শ খুব স্বাগত!

অনুরোধ সম্পাদনা

strace, আউটপুট শো: +++ killed by SIGKILL +++সহ দর্শন কমান্ড স্বাভাবিক চেহারা খোলা ( /usr/share/localএবং দীর্ঘ স্ট্রিং, যা আমি অনুমান পড়া হয় ইমেজ তথ্য)

বিনামূল্যে আমাকে দেয়:

         total       used       free     shared    buffers     cached
Mem:       1016292     278348     737944       6412        460      13356
-/+ buffers/cache:     264532     751760
Swap:            0          0          0

সুতরাং দেখে মনে হচ্ছে যে অদলবদ সক্ষম করা নেই, তাই আমি আমার সমস্যাগুলি সাজিয়েছি কিনা তা দেখতে আমি একটি সোয়াপ ফাইল তৈরির দিকে নজর রাখব।

ফাইল আমাকে দেয়:

testprint10Mbv2.jpg: JPEG image data, EXIF standard

আমি পুরো / পাথ / থেকে / আইএমজিও পেস্ট করব তবে দুর্ভাগ্যক্রমে এতে সংবেদনশীল ডেটা রয়েছে (ক্লায়েন্টের ইমেল ঠিকানা ইত্যাদি)


1
sudoআপনি এই আদেশটি কেন ব্যবহার করছেন?
চার্লস গ্রিন

1
আমি না হলে "হত্যা" বার্তা পেয়েছি
এফায়ার

3
Ypu আর্গুমেন্টের সাহায্যে পিক্সেল ক্যাশের জন্য ব্যবহৃত মেমোরিটিকে সীমাবদ্ধ করার চেষ্টা করতে পারে -limit memory 64MiB(32MiB সম্ভবত কিছুটা ছোট। ডিফল্ট 1.5GiB)। এবং এটি ব্যর্থ হওয়ার ক্ষেত্রে আপনাকে কিছু বর্ণনামূলক আউটপুট দেওয়া উচিত।
dadexix86

2
কমান্ডের straceসামনে সংযুক্ত করে কমান্ডটি চালানোর চেষ্টা করুন , সিস্টেম কলগুলি কী করা হয় তা ত্রুটি নিক্ষেপ করে দেখুন। আসুন আমাদের
জানাবেন

2
সম্পন্ন. আমি আনন্দিত আপনি এটি সমাধান হয়েছে! ফ্রি আউটপুট নিশ্চিত করে যে সোয়াপ বন্ধ রয়েছে এবং ফাইলের তথ্য নিশ্চিত করে যে এটি কোনও ভুল-চিহ্নিত ফাইল নয়। সুন্দর সম্পাদনা! +1
প্রবীণ গীত

উত্তর:


7

আমি ধরে নিচ্ছি আপনি র‌্যামের বাইরে চলেছেন। watch cat /proc/meminfoআপনার প্রক্রিয়া চলাকালীন আপনি এটি যাচাই করতে পারেন ।

আপনার টাস্কটি সম্পাদন করতে আপনার কাছে অপর্যাপ্ত র‌্যাম এবং / অথবা সোয়াপ্যাপ থাকতে পারে।

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


1
ওপি একটি ক্লাউড সার্ভার সম্পর্কে, একটি সোয়াপ পার্টিশন তৈরি করা কোনও বিকল্প হতে পারে না। আপনি কীভাবে নতুন অদলবদল ফাইল যুক্ত করবেন তা যুক্ত করতে পারেন
user.dz

@ স্নেটিশর আমি ঠিক কী করেছি তা ভালো মন্তব্য
অ্যাফায়ার

@ স্নিটিশার "ওপি ক্লাউড সার্ভার সম্পর্কে" প্রশ্নের প্রশ্নের ডেটা থেকে পরিষ্কার ছিল না (কমপক্ষে আমার কাছে) তবে আপনি একটি ভাল বক্তব্য রেখেছেন। সম্পাদনা উত্তর।
বয়স্ক গীক

@ ওল্ডারজিক, আসলে এটি কিন্তু ভালভাবে হাইলাইট করা হয়নি Amazon EC2 t2.micro, আমি পরিষ্কার করার জন্য প্রশ্নটি সম্পাদনা করেছি, অন্যান্য সম্পর্কিত প্রশ্নের সাথে সহজ লিঙ্কযুক্ত করার জন্য ট্যাগ যুক্তও করেছি ।
user.dz

@ স্নিটার আমি এখন এটি দেখতে পাচ্ছি। চেষ্টা করার জন্য তোমাকে ধন্যবাদ!
বয়স্ক গীক

5

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

নীচে উল্লিখিত পদ্ধতিগুলি ইমেজ ম্যাগিকের ম্যানুয়ালিতে বিস্তারিতভাবে বর্ণনা করা হয়েছে:

সত্যিই বিশাল ইমেজ হ্যান্ডলিং


সারসংক্ষেপ:

  1. বিকল্পের সাথে মেমরির ব্যবহার সীমিত করুন -limit

    এটি করার মাধ্যমে চিত্র ম্যাগিক প্রদত্ত মেমরির সীমা অতিক্রম করার সাথে সাথে চিত্র পরিচালনা করার জন্য একটি অস্থায়ী ফাইল তৈরি করবে। এটি অস্থায়ী ফাইল ডিরেক্টরিতে ইমেজ ম্যাগিকের জন্য লেখার অনুমতি প্রয়োজন। অস্থায়ী ফাইলটি পরিবেশের পরিবর্তনশীলে তৈরি করা যায় এমন কোনও পথ আমরা দিতে পারি MAGICK_TMPDIR। উদাহরণস্বরূপ কমান্ড এর অনুরূপ হতে পারে:

        env MAGICK_TMPDIR=/tempdir nice -5 convert -limit memory 32 -limit map 32 largefile.jpg -resize 640x320 smallfile.png
    

    র‌্যামের চেয়ে ডিস্কে কাজ করা প্রক্রিয়াকরণের গতি যথেষ্ট গতি কমিয়ে দেবে।

  2. "মেমরি ম্যাপযুক্ত ডিস্ক ফাইলগুলি" নিয়ে কাজ করুন

    এমপিসি ফাইল তৈরি করা সম্পদ চাহিদা, কিন্তু এমপিসি ফাইলগুলি থেকে রূপান্তর করার জন্য এত সংস্থান দরকার হয় না। অতএব আমাদের একই উত্সকে বিভিন্ন পরামিতিগুলির সাথে কয়েকবার রূপান্তর করতে হবে এমন ক্ষেত্রে বিবেচনার মধ্যে রাখা যেতে পারে। কর্মপ্রবাহ তখন এর সাথে একই হতে পারে:

    convert huge.jpg huge.mpc
    convert huge.mpc -resize 50% big.png
    convert huge.mpc -resize 20% small.png
    convert huge.mpc -resize 5% thumb.png
    
  3. ব্যবহার করে একটি চিত্রের ছোট অংশগুলিতে কাজ করুন stream

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

    stream -map rgb -storage-type char -extract 600x400+1900+2900 image.png - | convert -depth 8 -size 600x400 rgb:- tile.png
    

    উপরের উদাহরণে -extractবিকল্পটি চিত্র ম্যাগিক জ্যামিতির দ্বারা সংজ্ঞায়িত আকার এবং অফসেট মান গ্রহণ করে । সামগ্রিকভাবে স্কেলড ইমেজ পাওয়ার জন্য আমাদের টাইলগুলি আবার একসাথে আটকাতে হবে। দুর্ভাগ্যক্রমে স্ট্রিমটি সমস্ত চিত্র ফর্ম্যাটের জন্য কাজ করে না তবে জেপিইজি চিত্রগুলিতে দুর্দান্ত কাজ করার কথা।

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