bugün məsləhət təsadüfi
sözaltı sözlük
postlar Yoxlama mesaj

12 yazar | 25 başlıq | 33 entry
yenilə | gündəm

son entrylər 33 yeni entry
#zirzəmi 3 yeni entry
#sözaltı wiki (3213)


dele dibazol mülki müdafiə pişik mikayıl müşfiq qız tutmağın yolları darıxmışam fanatizm mentalitet vətən borcu tarixdə bu gün yazarların paylaşmaq istədikləri musiqilər həsən səbbah həvəs partlaması saxurlar sözaltı fotoqrafiya aygün bəylər din qumar söz6 ilə tanışlığım azərcell lağ etmək səmərqənd əsəri sonradan gəlmə günortadan sonra gün görənlər ədalət saxurlar acca türkiyə universitetlərinə qəbul sinonimlər qoxu hafizəsi








bottleneck



facebook twitter əjdaha lazımdı izlə dostlar   mən   googlla
yazarların hazırda düşündükləri - attack on titan - toba fəlakəti nəzəriyyəsi - proqramlaşdırma terminləri
başlıqdakı ən bəyənilən yazılar:

+5 əjdaha

1. Bottleneck sözünün lüğəvi mənası "butulka ağzı" deməkdir.

Bundan əlavə "Bottleneck Effect" anlayışı var. Bu effekti real həyatda şəhərdaxili tıxaclarda da müşahidə edirik — yolda nə qədər çox maşın olursa, hərəkət bir o qədər yavaşlayır.

Mən isə bu anlayışı proqram mühəndisliyi tərəfdən izah etmək istəyirəm.

Layihə hazırlayanda, kodlayanda hər şey normal işləyir. Amma nə vaxt ki, proqram təminatının istifadəçi sayı artır — bu istər sayt olsun, istər mobil app, istər desktop tətbiq, istərsə də server əsaslı oyun — o zaman sistemdə donmalar və gecikmələr başlayır.

Problem odur ki, kodlarda heç bir xəta olmur. Bu səbəbdən ilk baxışdan problemin haradan qaynaqlandığını tapmaq çətin olur.

Bəs bu niyə baş verir?

Serverlərin müəyyən resurs limiti var — RAM, CPU, disk I/O və s. istifadəçilərdən eyni anda çoxlu sayda sorğu serverə gəldikdə və bu sorğular serverin resurslarını aşmağa başlayanda sistem sadəcə gücü çatdığı qədər işləyir və geriyə qalan sorğular gözləməyə məcbur qalır.

Bu problemin həlli üçün ilk növbədə məlumat bazasına (database) gedən sorğuları təhlil etmək lazımdır. Yəni hansı sorğular gec cavab verir, onları tapmaq və daha optimal yollarla dəyişmək lazımdır.

Bu müəyyən yerə qədər kömək edir, optimallaşdırma vermiş olur. Amma sistem kifayət qədər böyüyürsə və gəlir gətirirsə, bu zaman artıq DevOps və ya SRE (Site Reliability Engineer) mühəndisləri ilə işləmək zəruri olur. Çünki bu tip məsələlərin professional həlli onlardadır.

Əgər sistem böyüyür, amma gəlir gətirmirsə və əlavə xərclər etmək mümkün deyilsə, bu zaman artıq sistemdə olan ağır funksionallıqları çıxarmaq, sistemə yük verən prosesləri azaltmaq lazımdır.

Məsələn, hazırda Sözlük platformasında donmalar başlayıbsa və ağır query-lərdən şübhələnirsinizsə, onların yerini tapmaq üçün aşağıdakı yolları araşdıra bilərsiniz:

MySQL Slow Query Logs — Məlumat bazasında hansı sorğuların gec icra olunduğunu göstərir.

nginx access.log və error.log faylları — Serverə gələn sorğuları və error-ları izləmək üçün.

Bu log faylları üzərində analiz apararaq problemi aşkarlayıb həll yollarını tapmaq mümkündür.



hamısını göstər

bottleneck