Semaphores কি এবং তারা কীভাবে হয়?


8

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

/usr/bin/ipcrm sem $(/usr/bin/ipcs -s | grep www-data | awk '{print$2}')

এখন এটি কার্যকর করার জন্য একটি কমান্ড পেয়ে খুব ভাল যা আমার সমস্যার সমাধান করে তবে তারপরে আবার আমার কী ধারণা নেই এটি সম্পর্কে কি আছে।

সেম্যাফোরগুলি কী এবং হেক তাদের রাখে কোথায়, তারা কোথায় আছে এবং কীভাবে তারা আমার অ্যাপাচি ক্র্যাশ করে?

কিছু সাধারণ ব্যাখ্যার জন্য আমি সত্যিই খুশি হব!

উত্তর:


9

অন্যরা যেমন বলেছে যে সেমোফোরগুলি হ'ল আইপিসি (ইন্টারপ্রেসেস যোগাযোগের কাঠামো)। সমস্ত আইপিসির মতো সেমোফোরগুলি বিভিন্ন প্রক্রিয়াটিকে একে অপরের সাথে যোগাযোগের অনুমতি দেওয়ার জন্য ব্যবহৃত হয়।

এগুলি মূলত কাউন্টার যা সেম্পস্ট (3), সেমওয়েট (3), সেমজেট (2) এবং সেমপ (2) এর মতো বিশেষ সিস্টেম কল ব্যবহার করে তৈরি করা, অ্যাক্সেস করা এবং ধ্বংস করা হয়। সংক্ষিপ্ত বিবরণের জন্য একটি লিনাক্স সিস্টেমে sem_overview (7) দেখুন।

এখানে যোগাযোগের সংজ্ঞাটি বেশ আদিম। Semaphores এর জন্য "যোগাযোগ" এর অর্থ উপরে বর্ণিত সিস্টেম / লাইব্রেরি কলগুলির মাধ্যমে একটি কাউন্টার পড়া, বাড়ানো বা হ্রাস করা।

সেমফোরগুলি সম্পর্কে বিশেষ বিষয়টি যে এগুলি ছাড়াও এটি হ'ল যে একবারে কেবল একটি প্রক্রিয়াই তাদের উপর একটি অপারেশন করতে পারে এবং সেমফোর অপারেশনগুলি গ্যারান্টিযুক্ত , এটি বলতে বোঝায় যে আপনি কোনও রেসের অবস্থাতে যেতে পারবেন না কার্নেল হিসাবে semaphore একটি প্রক্রিয়া পরিবর্তন করবে না যা একটি semaphore অপারেশন করছে।

অন্য বিশেষ বিষয়টি হ'ল এগুলি ভাগ করা মেমরিতে তৈরি করা হয়েছে যা একাধিক প্রক্রিয়াগুলিকে অ্যাক্সেস করার অনুমতি দেয়।

তারা কীভাবে প্রকাশ / তৈরি করে তা হ'ল প্রোগ্রামগুলি সেমজেট (2) ব্যবহার করে তাদের তৈরি করে। উদাহরণস্বরূপ এপাচি চালানোর সময় সেম্পাহোর তৈরি করে।

ipcs -l আপনাকে সিস্টেমের আইপিসি সংস্থান সম্পর্কে জানাবে।

আপনি সিস্টেমে কিছু সিস্টেম সেমফোর এবং আইপিসি সম্পর্কিত সীমাবদ্ধতার সাথে কৌশল করতে পারেন। sysctl kernel.semSysctl এর মাধ্যমে সেম্পাহোর সম্পর্কিত সেটিংস দেখার চেষ্টা করুন । আপনি যদি কোনও সিস্টেস্টাল পরিবর্তন অব্যাহত রাখতে চান তবে এগুলিতে প্রবেশের চেষ্টা করুন /etc/sysctl.conf


4

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

উইকিপিডিয়া: সেমফোর (প্রোগ্রামিং)


: এছাড়া Stackoverflow উপর বিষয়ের উপর একটি থ্রেড এর stackoverflow.com/questions/34519/what-is-a-semaphore
জেমস Sneeringer

আপনার ইউআরএলটিতে একটি ভুল আছে .. URL টি সঠিকভাবে অনুপস্থিত) এটি সার্ভারফল্ট সফ্টওয়্যারটিতে একটি বাগ বলে মনে হচ্ছে ...
tegbains

গ্র্যাম্বল এটি পূর্বরূপে ঠিক ইউআরএল পায় এবং আমি যখন এটি সংরক্ষণ করি তখন তা ড্রপ করে।
pgs

ধন্যবাদ এখন পর্যন্ত। তবে এগুলি কী, তারা প্রকাশ পায় কীভাবে? তারা কি ফাইল, লগ এন্ট্রি? স্মৃতির সাথে তাদের কী করার আছে? এগুলি খারাপ পিএইচপি প্রোগ্রামিংয়ের কারণে ঘটতে পারে (যেমন আমার হোস্টিং সংস্থা আমাকে বলেছে)?
মার্কাস

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