بهینه سازی MySQL روی لینوکس

اشاره : این یک متن نیمه فنی است درباره بهینه کردن یک سرور MySQL روی لینوکس. مخاطب عمومی ندارد هرچند که خواندن اش بی مزه هم نیست (:

در حین کار رسیدم به جایی که باید روی بانک اطلاعاتی ای با حدود چهار میلیون رکورد حدود صد و شصت هزاربار جستجو و نتایج را ذخیره می کردم. برنامه مورد نظر را نوشتم و کار را شروع کردم. بعد از یکساعت تخمین زمانی اتمام کار حدود ۳۴ روز بود !

برنامه را اصلاح و بهینه کردم و بعد از اجرای دوباره تخمین اتمام کار حدود ۳۱ روز شد !

برنامه را MultiThreatMultiThreatd نوشتم (تقریبا به این معنا که برنامه می تواند به شکل موازی چندین بار اجرا شود) و اجرا کردم ولی زمان اتمام کار همان ۳۱ روز ماند ):

به کامپیوتر نگاه کردم و دیدم چراغ هارد یک نفس روشن است یعنی کل جستجو دارد از روی هارد انجام می شود. Bottle Neck پیدا شد: سرعت هارد. سعی کردم بانک اطلاعاتی چهارصد مگی را روی حافظه ببرم. اینترنت را به دنبال mysql optimization گشتم و در نهایت برای اینکار در فایل /etc/my.cnf دو خط زیر را اضافه کردم:

</pre>
[mysqld]

key_buffer_size=300M
read_buffer_size=300M
</pre >

و سرویس بانک اطلاعاتی را restart‌ کردم و برنامه را اجرا. سرعت بیشتر نشده بود ولی با نگاه کردن به /proc/meminfo می شد دید که بانک اطلاعاتی به حافظه منتقل شده است ولی به دلیل کمبود حافظه کماکان هارد به عنوان swap‌ کار می کند.

در مرحله بعد از مدیرم خواستم حافظه کامپیوترم را به 2GB ارتقاء بدهد. بعد از انجام این کار دوباره برنامه اولیه را اجرا کردم و به چراغ های کامپیوتر نگاه کردم. چراغ هارد برای چند ثانیه روشن بود و بعد کلا خاموش شد (همه بانک اطلاعاتی به رم منتقل شده بود). زمان متوسط اجرا رسید به چهار روز. حالا برنامه بهینه شده سه روز وقت می گرفت و نسخه multithread فقط یک و نیم روز. حالا برنامه در حال اجرا است.

ورزش وبلاگستانی : گذاشتن اولین کامنت وبلاگ ها

وبلاگستان مثل هر جای دیگه فرهنگ خودش رو داره. بخشی از این فرهنگ هم مربوط است به ورزش های وبلاگستانی. یکی از این ورزشها که مورد علاقه خاص افراد است اینه که اولین کامنت گذار یک وبلاگ باشند. شیوه این ورزش عموما اینطوری است که دنبال عباراتی مثل «این اولین پست منه» یا «از امروز می خوام وبلاگ شروع کنم» می گردید و به وبلاگ هایی می رسید که یا تازه تاسیس شده اند یا در صورت قدیمی بودن متروک هستند و بعد چک می کنید که اون وبلاگ کامنت داره یا نه. اگر هیچ کامنتی نداشت براش یک پست می گذارید. مثلا من برای اینکه برای نوشتن این مطلب خودم را گرم کنم کمی ورزش کردم و برای وبلاگ Lost Hacker اولین کامنتش رو گذاشتم. لازم به ذکره که اولین و آخرین پست سعید هکر – که مشخصا هیچ کامنتی هم نداشت – مربوط می شه به ۲۴ آبان سال ۸۲ : من ليستی از آيدی های هک شده توسط خودم رو اينجا می نويسم! ((:‌ می بینید ؟ این ورزش در عین حال بسیار هم مفرح است (:‌

گزارش وبلاگستان فارسی در مرداد ماه 1385

نکته: این بررسی مبتنی است بر وبلاگ های حاضر در doxdo.com. در بررسی قبلی (تیرماه)‌ چند تن از خوانندگان به این مساله اعتراض کردند که چرا فقط وبلاگ های حاضر در دو در دو بررسی شده اند. علت این امر این است که این سایت کاملترین سایتی است که مطالب وبلاگ های فارسی را پوشش می دهد. این احتمال وجود دارد که در ماه های آینده پوشش بهتری داده شود. در عین حال دو در دو این مزیت را دارد که تا جایی که من احساس کرده ام به شکل بی طرف از همه گروه ها مطلب دارد ولی در عین حال با جدیت به خاطر دوستی و مرام و … کسی را بی دلیل به بانک اضافه نمی کند.

در این پست می خواهم کمی روش مندتر درباره وبلاگستان فارسی در مردادماه صحبت کنم. برای بررسی وبلاگستان فارسی در ابتدا باید مواد خام فراهم شود. فراهم کننده این مواد خام سایت خوب است. در ابتدای کار با استفاده از دستور wget لینوکس و یک اسکریپت کوتاه به زبان پیتون کل آرشیو مرداد ماه سایت دو در دو را دریافت و در یک فایل حدودا سیزده مگابایتی (دقیقا ۱۳۱۱۸۸۳۵ بایتی) ذخیره اش می کنیم.

حالا نوبت آمارگیری ها است. مرسوم ترین آمار تعداد پست هر وبلاگ در طول ماه است که فعالترین های وبلاگستان فارسی را مشخص می کند. برای اینکار یک اسکریپت دیگر به زبان پیتون می نویسم که در کل فایل تعداد تکرار مطلب هر یک از وبلاگ ها را می خواند و نتایج را به شکل فایل متنی ایجاد می کند. در مرحله اول مشخص می شود که از بین ششصد و خرده وبلاگ وسایت موجود در بانک دو در دو، تنها پانصد و یکی از آن ها در مرداد مطلب داشته اند.

برای به دست آوردن نمودار فعالترین های مرداد ماه، در ابتدا باید به شکل دستی سایت های غیروبلاگی (مانند بی بی سی) و وبلاگ هایی که محصول کار دیگر وبلاگ ها یا مجموعه ای از اخبار هستند (مثل وبلاگ ایرانیان خارج از کشور یا بلاگ نیوز ) را جدا کنم. این کار راحت نیست و بحث ایجاد می کند چرا که بعضی آن ها را هم جزو وبلاگستان می دانند و بعضی نه ولی من هرچند آن ها را بسیار مفید می بینم ولی معتقدم بهتر است در این نمودار فقط به وبلاگ هایی بپردازیم که یک وبلاگ نویس پشت آن ها است. به همین دلیل وبلاگ پر کار قدیری ابیانه ghadiri.org را هم حذف می کنم چرا که کپی و پیست اخبار دیگران است. و بعد با استفاده از صفحه گسترده OpenOffice که نرم افزاری آزاد و بازمتن مشابه Excel است، نمودارها را تولید می کنم. نتیجه این است:


طبق روال معمول نیک آهنگ کوثر بیشترین تعداد پست را دارد. بعد از او طبق معمول با اختلاف زیاد حاجی واشنگتن و جمهور هستند و بعد هم جنبشی استشهادی دوست خودم. کیبرد آزاد یازدهم است. نکته جالب این است که در بین سی وبلاگ اول هیچ اسمی از PersianBlog نیست و در عوض حضور Blogfa زیاد است.

باید توجه داشته باشیم که این نمودار فقط تعداد پست ها را نشان می دهد و این مساله هیچ ربطی به خوبی و بدی یک وبلاگ ندارد. ممکن است یک وبلاگ پر باشد از لینک های تک خطی در یک پست مجزا. خیلی ها هستند که وبلاگشان برایشان یک لینکدونی هم هست. در عین حال همانطور که سولوژن تذکر داده، حجم یک مطلب نشانه بهتری از پرکاری است تا تعداد پست ولی فعلا امکان آن وجود ندارد.

ایده بعدی بررسی وبلاگ ها در مرداد ماه، بررسی کلمات مورد استفاده است. بگذارید ببینیم چه کلماتی بیشتر از همه در پست ها استفاده شده اند. دوباره یک برنامه کوچک پیتون و حذف هر چیزی جز تیتر و متن مطالب و بعد مراحل قبل و در نهایت حذف دستی کلمات مرسومی مثل «با»، «است» و … و ایجاد نمودار. فکر می کنید پر کاربردترین کلمه چه چیزی باشد ؟


«ایران» ! برای من که جالب بود. دومین کلمه «وبلاگ» است با ۵۰۹ بار استفاده و سومین کلمه «امروز» است با ۲۶۷ بار. «قرار» را چک کردم و معمولا به این صورت استفاده شده که «قرار بود فلان چیز بشود» یا «قرار است فلان کار را بکنم». «جنگ لبنان» هم مورد توجه وبلاگ نویسان بوده است. در کل بیشتر کلمه های خاص، در حوزه جنگ و وضعیت جهان و ایران و آمریکا و اسراییل و .. هستند. جایگاه «حزب» با ۱۴۶، بیست و سوم است، جایگاهی که من هیچ وقت برایش حدس نمی زدم. خوشحالم که این لغت و «روزنامه» و «سازمان» هم جزو کلمات اصلی هستند. «الله» هم به شکل معجزه آسایی در رتبه مقدس چهل قرار دارد و از آن معجزه آساتر تعداد تکرار آن است:‌ صد و چهارده بار ! الله اکبر !

دارم روی طرحی کار می کنم که بتوانیم روند حرکت یک کلمه در پست های یکسری وبلاگ را دنبال کنیم. فعلا بیش از حد مقدماتی است و به این ماه نمی رسد. مثلا می خواهم ببینم چرخش / پیشرفت بحث در مورد شروع وبلاگ نویسی توسط احمدی نژاد چگونه است. ایده این است که پست هایی که هم «احمدی نژاد» دارند و هم «بلاگ» یا به وبلاگ او لینک دارند را جدا کنیم و بعد ببینیم روند نوشته شدن آن ها (از نظر زمان یا لینک یا … ) چگونه است. نمودار نهایی فعلا بیش از حد شلوغ و نسبتا بزرگ است. یک نمونه از قسمتی از آن به این شکل است:


امیدوارم تا زمان نوشتن گزارش شهریور، برنامه را تکمیل تر کرده باشم.

اینهم از گزارش مرداد. علاقمند شده ام کار را ادامه بدهم پس از پیشنهادها و انتقادها شدیدا استقبال می کنم.

سانسور نامه امام

در این تاپیک معمولا فیلترهای ابلهانه را معرفی می کنم ولی این بار مساله سانسور ابلهانه نامه امام خمینی است توسط حکومتی که خودش پایه گذاری کرده (: البته این جریان در انقلاب های دیگر هم تکرار می شد که رهبر انقلاب کم کم کنار گذاشته می شد ولی در ایران و انقلاب اسلامی این انتظار کمتر می رفت. بخصوص که تعداد زیادی از افراد هستند که هنوز سرسخت هم با امام هستند و هم با سانسور کنندگانش (:

به هرحال… این دفعه مساله سانسور ابلهانه، متعلق است به نامه امام که در انتهای جنگ گفته بود که یکی از فرماندهان سپاه به اون گفته ممکن است در صورت داشتن وسائلی که در طول پنج سال به دست می‌‏آوريم قدرت عمليات انهدامی و يا مقابله به مثل را داشته باشيم و بعد از پايان سال ۷۱ اگر ما دارای ۳۵۰ تيپ پياده و ۲۵۰۰ تانک و ۳۰۰۰ توپ و ۳۰۰ هواپيمای جنگی و ۳۰۰ هلی‌‏کوپتر و قدرت ساختن مقدار قابل توجهی از سلاحهای ليزر و اتم که از ضرورت‌‏های جنگ در آن موقع است داشته باشيم، می‌‏توان گفت به اميد خدا بتوانيم عمليات آفندی داشته باشيم. ولی این نامه وقتی در رسانه های ما چاپ می شه عبارت لیزر و اتم ازش حذف می شه تا نکنه یکهو مردم فکر کنند ما به فکر ساخت سلاح اتمی هستیم یا از سال ها پیش رهبران کشور تصورشان این بود که اگر سلاح لیزر(ی) و اتم(ی) بسازیم می توانیم به دشمن حمله کنیم.

جالب است که حین این سانسور ابلهانه همان کسانی که نامه امام را سانسور کرده اند پشتش هم خبر بدبینی به ایران در پی انتشار نامه محرمانه را منتشر می کنند و می گویند که خارجی ها از اینکه ایران سالهاست قسم می خورد که از اتم فقط به دنبال صلح است ولی از سال ها پیش رهبرانش نوشته بودند که باید برای حمله به دشمن انرژی اتمی داشته باشیم نگرانند.

تکنولوژی جدید

وقتی یک تکنولوژی جدید به راه می افتد، اگر بخشی از لوکوموتیو نباشید، بخشی از جاده خواهید بود.

دختری با گوشواره های مروارید

نمی دونم دیشب فیلم سینما چهار رو دیدید یا نه. فیلم درباره داستان زندگی ورمیر نقاش هلندی و داستان خلق تابلوی دختری با کوشواره های مروارید بود. در جایی از فیلم یکی از دوستان نقاش که سابقا هم مدل نقاشی اون بوده تابلویی از خودش رو به دختر خدمتکار نشون می ده که اون رو وحشت زده می کنه و مردم هم از اینکه دختر خدمتکار در تابلوی بعدی ورمیر مدل خواهد بود ابراز انزجار می کنند. این تابلو در فیلم سانسور شده بود !

جنبه ابلهانه جریان اینجاست که کل داستان با نشون ندادن این تابلو گنگ و مبهم شده بود ! خوشبختانه لیلا هم درباره این جریان نوشته و هم تصویر تابلوی سانسور شده رو در وبلاگش گذاشته کار جالبیه و تابلوی جالبی که تازه داستان رو با معنی می کنه !

حملات بازداری از سرویس توزیع شده

نیت افرادی که حملات DDoS (بازداری از سرویس توزیع شده) را طراحی کرده اند هیچ ربطی به هک کردن ندارد و این افراد خرابکار هستند و هکر نیستند.

جواب زندگی، عالم و همه چیز

فکر می کنید جواب زندگی، عالم و همه چیزهای دیگر (the answer to life, the universe, and everything) چیست ؟ این یک جمله و سوال کلیدی است که در رمان The hichikers guide to galaxy به طنز توضیح داده شده است. برای گرفتن این جواب لازم نیست زحمت زیادی بکشید و یک سوال ساده در گوگل کافی است ! به شکل جالبی دیروز در این مورد صحبتی با بهترین دوستم / البته بعد از همسرم بود و همزمان شد با کاریکاتور اینبار BLaugh اول کاریکاتور را ببینید :

و بعد در گوگل به دنبال the answer to life, the universe, and everything جستجو کنید و جواب زندگی، عالم و همه چیز را پیدا کنید !