یه چند وقتیه که سرور این و اون دستمه و منیج میکنم بد ندیدم یه سری نکاتی که به درد بخورن رو بنویسم اینجا بیشتر برای خودم که ازشون استفاده کنم بعدها :) امیدوارم به درد دوستان هم بخوره!
یکی از اولین کارهایی که میکنید وقتیکه سرور افتاد زیر دستتون به جون سخت افزارش بیفتید و ببینید دقیقا چی به چیه :)
مثلا با این دستور خیلی راحت سرعت نوشتن اطلاعات روی هارد رو در بیارید.
1 2 3 4 |
[root@novid ~]# dd if=/dev/zero of=/tmp/output bs=8k count=100k; rm -f /tmp/output 102400+0 records in 102400+0 records out 838860800 bytes (839 MB) copied, 0.674417 s, 1.2 GB/s |
واو یه شاهکاره :) نمیتونید تصور کنید شور و شوقی رو که دارم از اینکه همچین سروری زیر دستمه :)
خب حالا ببینم چند تا پردازشگر داره سرور و برای اینکار از دستور زیر کمک میگیریم
1 2 |
[root@novid ~]# cat /proc/cpuinfo | grep processor | wc -l 16 |
عدد ۱۶ داره میگه سرور ۱۶ تا هسته داره :) قضیه چیه؟ پردازشگر ۱۶ هستهای داریم؟ با دستور زیر اسم و مدل پردازشگر رو در میاریم.
1 2 |
[root@novid ~]# cat /proc/cpuinfo | grep “model name” | head -n 1 model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz |
و حالا با یه سرچ کوچولو به این میرسیم که پردازشگر E5620 چهار هسته داره که با فناوری خاص اینتل، انگاری ۸ تا هستن (تریت)! بنابراین خیلی فریب ۸ هسته ای بودنش رو نخورید چون واقعا ۴ تا هسته بیشتر نداره. اما فرکانس کاری ۲.۴ گیگاهرتز هست :)
حتما باید حدس زده باشید که سرور دو تا پردازشگر داره! :)
ببینیم لینوکس فرکانس کاری رو چند نشون میده؟
1 2 3 4 5 6 |
[root@novid ~]# cat /proc/cpuinfo | grep “cpu MHz” | head -n 5 cpu MHz : 1600.000 cpu MHz : 1600.000 cpu MHz : 1600.000 cpu MHz : 1600.000 cpu MHz : 1600.000 |
اینجاست که باید مشکوک شید که نکنه کلاهی گذاشته شده سرتون! چرا فرکانس واقعی در حال کار پردازشگر ۱۶۰۰ مگاهرتزه؟ :) با فرکانس اسمی ۲۴۰۰ اینقدر اختلاف داره؟ که بعد متوجه میشیم آقای اینتل این پردازنده رو مجهز کرده به اسپید استپ که دقیقا کارش اینه که فقط زمانایی که لازمه و فشاری هست فرکانس پردازشگر بره بالا و از این طریق هم توی مصرف انرژی صرفه جویی شده باشه و هم طول عمر پردازشگر بالا بره!
برای اینکه مطمئن شیم باید یه جوری سیستم رو تحت فشار قرار بدیم! :)
1 |
[root@novid ~]# fulload() { dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null & }; fulload; read; killall dd |
جالب نیست؟ به صورت موازی و همزمان، میایم تا زمان نامحدودی اطلاعات بیخودی و در وری (صفر) روی هارد مینویسیم! بعد توی تب جدید میریم وضعیت فرکانسای پردازشگر رو چک میکنیم :)
1 2 3 4 5 6 7 8 9 |
[root@novid ~]# cat /proc/cpuinfo | grep “cpu MHz” cpu MHz : 2401.000 cpu MHz : 2401.000 cpu MHz : 2401.000 cpu MHz : 1600.000 cpu MHz : 1600.000 cpu MHz : 1600.000 cpu MHz : 1600.000 cpu MHz : 2401.000 |
کار بیشتر کشدیدم، هستههای بیشتری تحریک شدن و تا حداکثر فرکانس ممکن هم دارن کار میکنن :) راضی هستیم و میریم سراغ بقیه کار!
یکی از کارایی که بعد راه افتادن امکانات مختلف روی سرور حتما باید هرازگاهی چک کنید، تعداد افراد آنلاین و لحظهای هست! اینکه آدمای مختلف دقیقا با چه آیپیهایی و چه پورتهایی به سرور وصل شدن و دارن از خدمات مختلف مثل ssh و یا دیدن سایت و بقیه امکانات بهره میبرن :) و از همه مهمتر، آیا یک آیپی به صورت غیر عادی داره از منابع سیستم استفاده میکنه؟
1 2 3 4 5 6 |
root@novid [~]# netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n 11 127.100.100.103 14 127.0.0.1 18 127.0.122.98 39 192.168.1.1 |
همم، به ترتیب از کمترین تا بیشترین استفاده یهو براتون لیست میشه:) یه نفر تونسته تا چهل کانکشن مختلف به سرور بزنه! میشه با توجه به قدرت سخت افزار و اینجور مسائل، محدودیت گذاشت تا افراد از یه حدی بیشتر نتونن از منابع استفاده کنن.
فرض کنید میزبان سایتی هستید و میخواید ببینید دقیقا چقدر آدم داره از سایتتون بازدید به عمل مییاره!؟
1 2 |
root@novid [~]# netstat -an | grep :80|wc -l 83 |
زیباست :) ۸۳ نفر دارن از پورت ۸۰ استفاده میکنن!
فکر کنید حقوق و دستمزد ساعتی دارید میگیرید؟ خب باید یه طوری نشون بدید که چند ساعت وصل بودید از خونه دیگه؟
یه راه اینه آمار ساعتایی رو که با ssh وصل شدید به سرور رو در بیارید، تمام موارد مهم مثل لاگین شدن توی سنت او اس در فایلی به اسم secure ثبت میشه! پس با دستور زیر سعی میکنیم به هدفمون برسیم!
1 2 3 4 5 |
[root@novid ~]# cat /var/log/secure | grep Accepted Feb 18 22:39:20 novid sshd[10473]: Accepted publickey for root from 127.0.0.1 port 48198 ssh2 Feb 19 00:31:30 novid sshd[11906]: Accepted publickey for root from 127.0.0.1 port 42468 ssh2 Feb 19 00:38:21 novid sshd[12408]: Accepted publickey for root from 127.0.0.1 port 43839 ssh2 Feb 19 01:57:45 novid sshd[14260]: Accepted publickey for root from 127.0.0.1 port 57599 ssh2 |
الان میتونید حتی آمار کسایی که بدون اطلاع شما وصل شدن ssh رو هم در بیارید اما هنوز روش خوبی نیست برای اینکه بشه حقوق ساعتی رو به صورت مستند دریافت کرد.
با کمی جستجو به برنامه psacct میرسیم و متوجه میشیم یک برنامه شاهکاره! :)
1 2 |
[root@novid ~]# ac total 71.10 |
جالبناک شد! در مجموع ۷۱ ساعت وصل بودم به سرور که با اضافه کردن d به دستور میشه حتی به تفکیک روز آمار رو گرفت!
خب ساعت دو و چهل دقیقه صبحه، به نظرم دیگه کافیه برای امروز!
دیدگاهتان را بنویسید