CodeGym /Kurslar /Docker SELF /Kontainer resurslarının idarə olunması

Kontainer resurslarının idarə olunması

Docker SELF
Səviyyə , Dərs
Mövcuddur

6.1 Konteyner resurslarını məhdudlaşdırma səbəbləri

Docker konteyner resurslarının idarə olunması üçün çevik alətlər təqdim edir ki, bu da hesablama gücündən effektiv istifadə etməyə və konteynerlər arasında münaqişələrin qarşısını almağa imkan yaradır. CPU və yaddaş kimi resursların məhdudlaşdırılması, xüsusilə çoxtapşırıqlı mühitlərdə, sistemlərin sabitliyini və performansını təmin etməyə kömək edir. Bu mühazirədə biz Docker konteynerlərinin CPU və yaddaş istifadəsinə necə limit qoyulacağını ətraflı araşdıracağıq.

Konteyner resurslarının məhdudlaşdırılması bir neçə səbəbdən vacibdir:

  1. Sabitlik: Bir konteynerin bütün mövcud resursları istehlak etməsinin qarşısını almaq, bu isə digər konteynerlərin və ümumilikdə sistemin performansına zərər vura bilər.
  2. Effektivlik: Resursların konteynerlər arasında daha yaxşı bölüşdürülməsi, bu isə hesablama gücündən daha yaxşı istifadə etməyə imkan verir.
  3. Təhlükəsizlik: Resursların məhdudlaşdırılması potensial zərərli konteynerlərin, sistem resurslarını tükətməyə çalışmasının qarşısını ala bilər.

6.2 CPU istifadəsinə limitlər

Docker konteynerlərin CPU istifadəsini məhdudlaşdırmaq üçün bir neçə üsul təqdim edir.

Vacib! Burada CPU dedikdə bütün prosessor yox, bir prosessor nüvəsi nəzərdə tutulur. Dörd nüvəli prosessorun 4 dənə CPU-su olacaq.

1. CPU (--cpu-shares) payının məhdudlaşdırılması

--cpu-shares parametri konteynerin CPU istifadəsi üçün nisbi prioritet dəyərini təyin edir. Default dəyər — 1024-dür. Bu nisbi bir dəyərdir, yəni --cpu-shares=512 olan konteyner, --cpu-shares=1024 konteynerinin prioritetinin yarısını alacaq.

İstifadə nümunəsi:

Bu nümunədə high_priority_container konteyneri, low_priority_container ilə müqayisədə CPU paylanmasında daha yüksək prioritetə malik olacaq.

Terminal

docker run -d --name low_priority_container --cpu-shares=512 nginx

docker run -d --name high_priority_container --cpu-shares=2048 nginx

2. CPU sayının məhdudlaşdırılması (--cpus)

--cpus parametri konteyner üçün mövcud CPU dəqiq sayını təyin edir. Məsələn, 1.5 dəyəri, konteynerin 1.5 CPU istifadə edə biləcəyini göstərir.

İstifadə nümunəsi:

Bu nümunə limited_cpu_container konteynerini maksimum 1.5 CPU istifadə ilə məhdudlaşdırır.

Terminal


        docker run -d --name limited_cpu_container --cpus="1.5" nginx
    

3. CPU vaxtından istifadənin məhdudlaşdırılması (--cpu-quota--cpu-period)

--cpu-quota--cpu-period parametrləri ilə CPU istifadəsini daha incə şəkildə tənzimləyə bilərsiniz. --cpu-period mikrosekundlarla vaxt intervalını təyin edir (default olaraq 100000-dür), --cpu-quota isə bu müddətdə maksimum istifadəyə icazə verilən CPU vaxtını təyin edir.

İstifadə nümunəsi:

Bu nümunədə custom_cpu_quota_container konteyneri maksimum 50% CPU istifadə edəcək (25000/50000).

Terminal


        docker run -d --name custom_cpu_quota_container --cpu-period=50000 --cpu-quota=25000 nginx

6.3 Yaddaş istifadəsinə limitlər

Yaddaş məhdudiyyəti konteynerin operativ yaddaş istifadəsinə nəzarət etməyə kömək edir, digər proseslərə və konteynerlərə təsirini qarşısını alır.

1. Maksimal yaddaş həcmində məhdudlaşdırma (--memory)

--memory parametri, konteynerin istifadə edə biləcəyi yaddaşın yuxarı həddini təyin edir. Bu sərt bir məhdudiyyətdir, onun aşılması halında konteyner sistem tərəfindən dayandırılacaq.

İstifadə nümunəsi:

Bu nümunə konteyneri limited_memory_container maksimum 512 MB operativ yaddaş istifadəsi ilə məhdudlaşdırır.

Terminal


docker run -d --name limited_memory_container --memory="512m" nginx

2. Swap yaddaş həcmində məhdudlaşdırma (--memory-swap)

--memory-swap parametri operativ yaddaş və üstəgəl swap həcminin yuxarı həddini təyin edir. Məsələn, əgər --memory 512 MB olaraq təyin edilibsə və --memory-swap 1 GB olaraq təyin edilibsə, konteyner 512 MB operativ yaddaş və 512 MB swap istifadə edə bilər.

İstifadə nümunəsi:

Bu nümunə konteyneri swap_limited_container maksimum 512 MB operativ yaddaş və 512 MB swap istifadəsi ilə məhdudlaşdırır.

Terminal


docker run -d --name swap_limited_container --memory="512m" --memory-swap="1g" nginx

3. Swap yaddaşı olmadan yaddaş istifadəsini məhdudlaşdırma (--memory-swap=-1)

Swap istifadəsinə icazə olmadan yaddaş istifadəsini məhdudlaşdırmaq üçün --memory-swap parametri -1 olaraq təyin edilməlidir.

İstifadə nümunəsi:

Bu nümunə konteynerə no_swap_container yalnız 512 MB operativ yaddaş istifadəsinə icazə verir və swap istifadəsinə icazə vermir.

Terminal


docker run -d --name no_swap_container --memory="512m" --memory-swap="-1" nginx

6.4 Praktik ssenarilər

1. Yüksək prioritetli və aşağı prioritetli tapşırıqların icrası

Yüksək prioritetli və aşağı prioritetli tapşırıqların bir serverdə icrası zamanı --cpu-shares parametrlərindən istifadə etmək vacib tapşırıqların daha çox CPU əldə etməsini təmin etməyə kömək edir.

Terminal


docker run -d --name high_priority_task --cpu-shares=2048 my_high_priority_image
docker run -d --name low_priority_task --cpu-shares=512 my_low_priority_image

2. Resursların məhdudlaşdırılması ilə test

Tətbiqləri məhdud resurslar şəraitində test etmək üçün CPU və yaddaşa sərt limitlər tətbiq etmək olar. Bu yolla tətbiqin məhdud şəraitdə necə işləyəcəyini anlamaq mümkündür.

Terminal


docker run -d --name test_container --cpus="1" --memory="256m" my_test_image

3. Resursların tükənməsindən qorunma

Bir konteynerin bütün mövcud sistem resurslarını istifadə etdiyi halların qarşısını almaq üçün bütün konteynerlər üçün yaddaş və CPU limitləri təyin etmək olar.

Terminal


docker run -d --name isolated_container --cpus="2" --memory="1g" my_app_image

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION