شراءُ خطّةٍ أكبر سريع، وصوابٌ أحيانًا. وهو أيضًا أشيعُ طريقةٍ لإنفاق المال على مشكلةٍ كانت فهرسًا غائبًا أو نداءَ واجهةٍ برمجيّةٍ بطيئًا واحدًا. وعشرُ دقائقَ من القياس تحسمها.
أنفدت ذاكرتُك فعلًا
free -h
vmstat 1 5
في vmstat اقرأ عمودَي si وso: الصفحاتُ المُبدَّلة داخلًا وخارجًا في الثانية. فأرقامٌ غيرُ صفريّة مستمرّة تعني أنّ الجهاز ضائقٌ في الذاكرة حقًّا. والأصفارُ تعني أنّه ليس كذلك، مهما قال عمودُ free.
ولينكس يستعمل الذاكرة الحرّة مخزنًا للقرص عن قصد. فجهازٌ يُبلّغ عن ذاكرةٍ حرّةٍ تكاد تكون معدومة وبلا تبديلٍ جهازٌ سليم — انظر الذاكرة والتبديل ومتى يكون التبديل عرَضًا.
ما هو بدلًا من ذلك، عادةً
- استعلامٌ بطيء. استعلامٌ بلا فهرسٍ على جدولٍ ينمو. انظر سجلّ الاستعلامات البطيئة.
- انتظارُ شيءٍ آخر — واجهةُ دفعٍ أو خادمُ بريدٍ أو تغذيةٌ بعيدة — حيث يكون الخادم خاملًا لا مشغولًا.
- القرص. فانتظارُ إدخالٍ وإخراجٍ مرتفعٌ في top يعني أنّ التخزين هو الحدّ، والذاكرةُ الأكثر لا تنفع إلّا بالتخزين حوله.
- نواةُ معالجةٍ واحدة مثبَّتة بعملٍ أحاديّ الخيط والباقياتُ خاملة.
اقرأها منفصلة
top -b -n1 | head -15 # load, iowait, what is busy
iostat -x 1 3 # disk latency and utilisation
ss -s # connection counts
ومتى تكون الذاكرةُ الأكبر هي الجواب
- تبديلٌ مطّرد تحت ازدحامٍ معتاد.
- ومجموعةُ عمل قاعدة بياناتٍ أكبر ممّا تستطيع إعطاءه لحوض الذاكرة — انظر innodb_buffer_pool_size.
- وحوضُ PHP لا تستطيع أن تقيسه كبيرًا كفايةً لازدحامك دون أن تتجاوز الذاكرة.
قِس أوّلًا ورقِّ ثانيًا. فتغييرُ الخطّة سهلُ الفعل عسيرُ الفكّ، والاستعلامُ البطيء ما زال هناك بعده — على جهازٍ أغلى الآن.
