டோக்கர் இசையமைப்பு - நினைவக வரம்புகள்

Docker Compose Memory Limits



டோக்கர் இசையமைப்பு ஒரு சக்திவாய்ந்த பயன்பாடு ஆகும். இது நேரத்தை மிச்சப்படுத்துகிறது மற்றும் உங்கள் Dockerized பயன்பாட்டை வரிசைப்படுத்தும் போது பிழைகளை குறைக்கிறது. பொதுவாக, ஒரு ஒற்றை கொள்கலனுக்குள் இருந்து ஃப்ரான்டென்ட், டேட்டாபேஸ் சர்வர் போன்ற முழு ஸ்டாக்கையும் இயக்குவது ஒரு சிறந்த யோசனை அல்ல.

ஒரு பயன்பாட்டின் வெவ்வேறு பணிச்சுமைகளை கையாள பல்வேறு கொள்கலன்களை நாங்கள் சுழற்றுகிறோம், இதை எளிதாக செய்ய நாங்கள் டோக்கர் இசையமைப்பைப் பயன்படுத்துகிறோம். ஒவ்வொரு தர்க்கரீதியாக வேறுபட்ட பணிச்சுமை வித்தியாசமாக பட்டியலிடப்பட்டுள்ளது சேவை . உதாரணமாக, உங்கள் முன்பக்க http சேவையகம் ஒரு அப்பாச்சி அல்லது என்ஜின்க்ஸ் படத்தை ஒரு கொள்கலனாக இயக்கும் முன்பக்க சேவையாக பட்டியலிடப்படும்.







அனைத்து சேவைகள், அவற்றின் நெட்வொர்க்கிங் தேவைகள், சேமிப்பு தேவைகள் போன்றவற்றை ஒரு docker-compose.yml கோப்பில் குறிப்பிடலாம். நினைவக பயன்பாட்டை இங்கே குறிப்பிடுவதில் நாங்கள் கவனம் செலுத்துவோம்.



உங்கள் ஆயுதக் களஞ்சியத்தில் பின்வரும் கருவிகள் பின்பற்ற வேண்டும்:



  1. டோக்கரின் அடிப்படை புரிதல்
  2. விண்டோஸ் அல்லது மேக்கிற்கான டோக்கர் அல்லது நீங்கள் லினக்ஸை இயக்கினால், லினக்ஸிற்கான DockerCE
  3. டாக்கர் இசையமைத்தல் பினார் y (விண்டோஸ் மற்றும் மேக் பயனர்கள் இதை ஏற்கனவே நிறுவியிருப்பார்கள்)

பதிப்பு 17.12 மற்றும் அதற்கு மேற்பட்ட டோக்கர் எஞ்சின் மற்றும் உயர்வை ஆதரிப்பதால், எங்கள் docker-compose.yml கோப்புகளுக்கான பதிப்பு 2.4 உடன் ஒட்டிக்கொண்டிருப்போம். நாம் சமீபத்திய பதிப்பு 3 உடன் சென்றிருக்கலாம் ஆனால் அது பழைய நினைவக வரம்பு தொடரியலை ஆதரிக்காது. நீங்கள் புதிய தொடரியலைப் பயன்படுத்த முயற்சித்தால், அதற்குப் பதிலாக டோக்கரை ஸ்வர்ம் பயன்முறையில் பயன்படுத்த வலியுறுத்துகிறது. எனவே வழக்கமான டோக்கர் பயனர்களுக்கு விஷயத்தை எளிமையாக வைக்க நான் பதிப்பு 2.4 உடன் ஒட்டிக்கொள்கிறேன்





பெரும்பாலான குறியீடு பதிப்பு 3 க்கு ஒரே மாதிரியாக வேலை செய்யும், மேலும் வித்தியாசம் இருக்கும் இடத்தில், டோக்கர் ஸ்வர்ம் பயனர்களுக்கான புதிய தொடரியல் பற்றி நான் குறிப்பிடுவேன்.

மாதிரி விண்ணப்பம்

முதலில் CLI மற்றும் பின்னர் ஒரு எளிய docker-compose.yml ஐப் பயன்படுத்தி போர்ட் 80 இல் ஒரு எளிய Nginx சேவையை இயக்க முயற்சிப்போம். அடுத்த பிரிவில், அதன் நினைவக வரம்புகள் மற்றும் பயன்பாட்டை ஆராய்வோம் மற்றும் தனிப்பயன் வரம்புகள் எவ்வாறு விதிக்கப்படுகின்றன என்பதைப் பார்க்க எங்கள் docker-compose.yml ஐ மாற்றுவோம்.



டோக்கர்- CLI ஐப் பயன்படுத்தி ஒரு எளிய nginx சேவையகத்தைத் தொடங்குவோம்:

$ docker run -d -name my -nginx -p80:80nginx: சமீபத்தியது

பார்வையிடுவதன் மூலம் nginx சேவையகம் வேலை செய்வதை நீங்கள் காணலாம் http: // Localhost அல்லது lcoalhost ஐ மாற்றவும்

உங்கள் டோக்கர் ஹோஸ்டின் ஐபி முகவரியுடன். இந்த கொள்கலன் உங்கள் டோக்கர் ஹோஸ்டில் கிடைக்கக்கூடிய முழு நினைவகத்தையும் பயன்படுத்த முடியும் (எங்கள் விஷயத்தில் இது சுமார் 2 ஜிபி ஆகும்). நினைவகப் பயன்பாட்டைச் சரிபார்க்க, மற்றவற்றுடன், நாம் கட்டளையைப் பயன்படுத்தலாம்:

$ docker my-nginx புள்ளிவிவரங்கள்

கண்டெய்னர் ஐடி பெயர் CPU % MEM பயன்பாடு/LIMIT MEM % NET I/O பிளாக் I/O பிட்ஸ்
6eb0091c0cf2 my-nginx0.00% 2.133MiB / 1.934GiB0.11% 3.14kB / 2.13kB 0B / 0B2

மொத்த 1.934GiB இல் MEM பயன்பாடு/LIMIT 2.133MiB இல் உள்ளது. இந்த கொள்கலனை அகற்றி, டோக்கர்-கம்போஸ் ஸ்கிரிப்ட்களை எழுத ஆரம்பிக்கலாம்.

$ docker my-nginx ஐ நிறுத்துங்கள்
$ docker rm my-nginx

சமமான ym கோப்பு

இந்த வழிமுறைகளைப் பின்பற்றினால் மேலே உள்ள சரியான கொள்கலனை உருவாக்க முடியும்:

$ mkdir என் இசையமை
$ cd என் இசையமை
$ vim docker-compose.yml

நாங்கள் ஒரு புதிய வெற்று கோப்பகத்தை உருவாக்கி அதில் ஒரு கோப்பு docker-compose.yml ஐ உருவாக்குகிறோம். இந்த கோப்பகத்திலிருந்து நாங்கள் டாக்கர்-கம்போஸை இயக்கும்போது, ​​அது இந்த குறிப்பிட்ட கோப்பைத் தேடும் (மற்ற அனைத்தையும் புறக்கணித்து) அதற்கேற்ப எங்கள் வரிசைப்படுத்தலை உருவாக்கும். இந்த .yml கோப்பின் உள்ளே பின்வரும் உள்ளடக்கங்களைச் சேர்க்கவும்.

பதிப்பு:'3'
சேவைகள்:
my-nginx:
படம்: nginx: சமீபத்தியது
துறைமுகங்கள்:
-'80: 80 '

$ docker -compose -d

புதிதாக உருவாக்கப்பட்ட கொள்கலன்கள் பின்னணியில் இயங்கும் வகையில் -d கொடி சேர்க்கப்பட்டுள்ளது. இல்லையெனில், முனையம் கொள்கலன்களுடன் தன்னை இணைத்து அதிலிருந்து அறிக்கைகளை அச்சிடத் தொடங்கும். இப்போது புதிதாக உருவாக்கப்பட்ட கொள்கலன் (களின்) புள்ளிவிவரங்களை நாம் காணலாம்:

$ டோக்கர் புள்ளிவிவரங்கள் -அனைத்தும்

கண்டெய்னர் ஐடி பெயர் CPU% MEM பயன்பாடு/LIMIT MEM% NET I/O பிளாக் I/O பிட்ஸ்
5f8a1e2c08ac my-compose_my-nginx_10.00% 2.25MiB/1.934GiB0.11% 1.65kB/0B 7.35MB/0B2

முன்பு போன்ற ஒரு கொள்கலன் ஒத்த நினைவக வரம்புகள் மற்றும் பயன்பாட்டுடன் உருவாக்கப்பட்டது என்பதை நீங்கள் கவனிப்பீர்கள். Yml கோப்பைக் கொண்டிருக்கும் அதே கோப்பகத்திலிருந்து. புதிதாக உருவாக்கப்பட்ட கொள்கலனை நீக்க பின்வரும் கட்டளையை இயக்கவும், வாடிக்கையாளர் பிரிட்ஜ் நெட்வொர்க் உருவாக்கப்பட்டது.

$டோக்கர்-கம்போஸ் டவுன்

இது உருவாக்கிய எந்த தொகுதிகளையும் தவிர்த்து, டோக்கரை சுத்தமான நிலைக்குத் திருப்பி விடும் (நாங்கள் எதையும் உருவாக்கவில்லை அதனால் கவலை இல்லை.)

நினைவக வரம்புகள் மற்றும் நினைவக முன்பதிவுகள்

நினைவக வரம்புகள் மற்றும் நினைவக முன்பதிவுகள் உங்கள் பயன்பாடுகள் மற்றும் நீங்கள் மேலே இயங்கும் டோக்கர் ஹோஸ்டின் சீரான செயல்பாட்டை உறுதி செய்ய இரண்டு வெவ்வேறு அம்சங்களாகும்.

விரிவாகச் சொன்னால், நினைவக வரம்பு ஒரு டோக்கர் கொள்கலனால் பயன்படுத்தக்கூடிய நினைவகத்தின் அளவிற்கு மேல் வரம்பை விதிக்கிறது. இயல்பாக ஒரு டோக்கர் கொள்கலன், வேறு எந்த கணினி செயல்முறையைப் போலவே, டோக்கர் ஹோஸ்டின் கிடைக்கும் முழு நினைவகத்தையும் பயன்படுத்தலாம். இது நினைவாற்றல்-விதிவிலக்குக்கு வழிவகுக்கும் மற்றும் உங்கள் கணினி நன்றாக செயலிழக்க நேரிடும். அது ஒருபோதும் வராவிட்டாலும் கூட, மதிப்புமிக்க வளங்களிலிருந்து மற்ற செயல்முறைகளை (மற்ற கொள்கலன்கள் உட்பட) பட்டினி போடலாம், மீண்டும் செயல்திறனை பாதிக்கலாம். நினைவக வரம்புகள் வள பசி கொண்ட கொள்கலன்கள் ஒரு குறிப்பிட்ட வரம்பை மீறவில்லை என்பதை உறுதி செய்கிறது. இது மோசமாக எழுதப்பட்ட பயன்பாட்டின் வெடிப்பு ஆரத்தை ஒரு சில கொள்கலன்களுக்கு கட்டுப்படுத்துகிறது, முழு தொகுப்பாளருக்கும் அல்ல.

மெமரி முன்பதிவுகள், மறுபுறம், குறைவான கடினமானது. கணினி நினைவகம் குறைவாக இயங்கும்போது, ​​அதில் சிலவற்றை மீட்டெடுக்க முயற்சிக்கிறது. இது கொள்கலனின் நினைவக நுகர்வு முன்பதிவு வரம்புக்கு அல்லது அதற்குக் கீழே கொண்டு வர முயற்சிக்கிறது. நினைவகம் மிகுதியாக இருந்தால், பயன்பாடு கடின நினைவக வரம்பு வரை விரிவாக்க முடியும்.

சுருக்க:

  1. நினைவக வரம்பு: ஒரு கொள்கலனுக்கு கிடைக்கும் நினைவகத்தின் அளவிற்கு கடுமையான மேல் வரம்பு.
  2. மெமரி ரிசர்வேஷன்: ஒரு அப்ளிகேஷன் சரியாக இயங்குவதற்கு தேவையான குறைந்தபட்ச மெமரியாக இதை அமைக்க வேண்டும். எனவே கணினி சில நினைவகத்தை மீட்டெடுக்க முயற்சிக்கும்போது அது செயலிழக்காது அல்லது தவறாக நடந்து கொள்ளாது.

நினைவக வரம்பை விட நினைவக முன்பதிவு அதிகமாக இருந்தால், நினைவக வரம்பு முன்னுரிமை பெறுகிறது.

நினைவக வரம்புகள் மற்றும் முன்பதிவுகளைக் குறிப்பிடுதல்

பதிப்பு 2

நாம் முன்பு எழுதிய docker-compose.yml க்கு சென்று அதற்கு ஒரு நினைவக வரம்பை சேர்க்கலாம். முன்நிபந்தனைகள் பிரிவில் விவாதிக்கப்பட்ட காரணங்களுக்காக பதிப்பை 2.4 ஆக மாற்றவும்.

பதிப்பு:'2.4'
சேவைகள்:
my-nginx:
படம்: nginx: சமீபத்தியது
துறைமுகங்கள்:
-'80: 80 '
மெம்_லிமிட்: 300 மீ

கடைசி வரி 300 -MiB க்கு my-nginx சேவைக்கான வரம்பை அமைக்கிறது. நீங்கள் KiB க்கு k ஐப் பயன்படுத்தலாம், மற்றும் GiB க்கு g மற்றும் b ஐ வெறும் பைட்டுகளுக்குப் பயன்படுத்தலாம். இருப்பினும், அதற்கு முன் உள்ள எண் ஒரு முழு எண்ணாக இருக்க வேண்டும். நீங்கள் 2.4m போன்ற மதிப்புகளைப் பயன்படுத்த முடியாது, அதற்கு பதிலாக 2400k ஐப் பயன்படுத்த வேண்டும். இப்போது நீங்கள் ஓடினால்:

$ docker புள்ளி -அனைத்து

கண்டெய்னர் ஐடி பெயர் CPU % MEM பயன்பாடு/LIMIT MEM % NET I/O பிளாக் I/O பிட்ஸ்
44114d785d0a my-compose_my-nginx_10.00% 2.141MiB/300MiB0.71% 1.16kB/0B 0B/0B2

நினைவக வரம்பு 300 MiB ஆக அமைக்கப்பட்டிருப்பதை நீங்கள் கவனிப்பீர்கள். மெமரி முன்பதிவை அமைப்பது சமமாக எளிதானது, ஒரு வரியைச் சேர்க்கவும் மெம்_இடைப்பு: இறுதியில் xxx.

பதிப்பு:'2.4'
சேவைகள்:
my-nginx:
படம்: nginx: சமீபத்தியது
துறைமுகங்கள்:
-'80: 80 '
மெம்_லிமிட்: 300 மீ
மெம்_ இட ஒதுக்கீடு: 100 மீ

பதிப்பு 3 (விரும்பினால்)

பதிப்பு மூன்றைப் பயன்படுத்த நீங்கள் டோக்கரை திரள் முறையில் இயக்க வேண்டும். விண்டோஸ் மற்றும் மேக்கிற்கு டோக்கர் அமைப்புகள் மெனுவைப் பயன்படுத்தி அதை இயக்கலாம். லினக்ஸ் பயனர்கள் டோக்கர் ஸ்வர்ம் இனிட்டை இயக்க வேண்டும். அதைப் பற்றிய கூடுதல் தகவல்களைக் காணலாம் இங்கே . இது ஒரு அவசியமான நடவடிக்கை அல்ல, நீங்கள் அதை இயக்கவில்லை என்றால், அதுவும் நல்லது. இந்த பகுதி மக்களுக்கானது ஏற்கனவே திரள் முறையில் இயங்குகிறது மற்றும் புதிய பதிப்பைப் பயன்படுத்த முடியும்.

பதிப்பு:'3'
சேவைகள்:
my-nginx:
படம்: nginx: சமீபத்தியது
துறைமுகங்கள்:
-'80: 80 '
வரிசைப்படுத்த:
வளங்கள்:
வரம்புகள்:
நினைவகம்: 300 மீ
இட ஒதுக்கீடு:
நினைவகம்: 100 மீ

இவை அனைத்தையும் ஆதாரங்களின் கீழ் நாங்கள் வரையறுக்கிறோம். வரம்புகள் மற்றும் இட ஒதுக்கீடு ஆகியவை அவற்றின் சொந்த முதன்மை விசைகளாகின்றன மற்றும் நினைவகம் இங்கு நிர்வகிக்கப்படும் பல ஆதாரங்களில் ஒன்றாகும். CPU என்பது மற்றொரு முக்கியமான அளவுருவாகும்.

மேலும் தகவல்

உத்தியோகபூர்வ ஆவணங்களிலிருந்து டோக்கர்-இசையமைப்பைப் பற்றி நீங்கள் மேலும் அறியலாம் இங்கே இணைக்கப்பட்டுள்ளது . ஒரு தொகுப்புக் கோப்பை எப்படி எழுதுவது என்ற கருத்தை நீங்கள் பெற்றவுடன், ஆவணங்கள் பல்வேறு அளவுருக்களுடன் உங்களுக்கு உதவலாம்.

நீங்கள் எல்லாவற்றையும் தெரிந்து கொள்ள வேண்டியதில்லை, உங்கள் விண்ணப்பத்திற்கு என்ன தேவை என்பதைத் தேடுங்கள், அதைச் செயல்படுத்த குறிப்பு உங்களுக்கு வழிகாட்டும்.