টিএল; ডিআর: যখন আমার এসকিউএল সার্ভার ডকার ধারকটির সাথে আইপিভি lo লুপব্যাক ( ::1
) সমাধান করে এমন একটি নাম দিয়ে সংযুক্ত করা হয় তখন এসএমও কলগুলি খুব ধীর হয়। ব্যবহার করার সময় 127.0.0.1
, তারা দ্রুত।
আমি কীভাবে ডকার ইমেজ মাইক্রোসফ্ট / এমএসকিউএল-সার্ভার-উইন্ডোজ-বিকাশকারী ব্যবহার করব তা শিখার চেষ্টা করছি । মাইক্রোসফ্টের ডকুমেন্টেশন অনুসারে, এই ধারকটি কেবল 1433 টিসিপি পোর্ট উন্মুক্ত করে।
docker run -d -p 1433:1433 -e sa_password=Passw0rd! -e ACCEPT_EULA=Y -v C:\dockerdb:C:\dockerdb microsoft/mssql-server-windows-developer
আমি উইন্ডোজ 10 এ ধারকটি চালাচ্ছি এবং এসকিউএল সার্ভার প্রমাণীকরণের সাথে প্রমাণীকরণ করে এবং উইন্ডোজ হোস্টে (লোকালহোস্ট বা "।" এর সাথে সংযোগ স্থাপন করে) এবং এসকিউএল অপারেশনগুলিতে sqlcmd এবং এসএসএমএস 17.4 ব্যবহার করে উদাহরণস্বরূপ অনুসন্ধান চালিয়ে সফল হয়েছি it আইপিতে সংযোগকারী পাশের ম্যাকের স্টুডিও। এইভাবে কোয়েরি চালানোর সময় আমি কোনও পার্ফারেন্সিয়াল পারফরম্যান্স সমস্যা দেখি না।
এসএসএমএসে, আমি অবজেক্ট এক্সপ্লোরারও ব্রাউজ করতে পারি, তবে যদি আমি অবজেক্ট এক্সপ্লোরারের কোনও অবজেক্টের ডান ক্লিক মেনু থেকে কিছু করার চেষ্টা করি, যেমন উদাহরণ প্যারামিটারগুলি উইন্ডো খুলুন বা একটি ডাটাবেস সংযুক্ত করুন, এসএসএমএস প্রায় 5 এর জন্য কোনও প্রতিক্রিয়া দেখায় না -10 মিনিট, কোন মুহুর্তে এটি আমার জিজ্ঞাসা উইন্ডোটি প্রদর্শন করে বা এই ত্রুটি বার্তাটি প্রদর্শন করে:
আমি এসএমও স্ক্রিপ্টার অবজেক্টটি ব্যবহার করে এই উদাহরণটির বিরুদ্ধে কিছু পাওয়ারশেল স্ক্রিপ্টিং করার চেষ্টা করছি এবং একই ধরণের আচরণ দেখতে পাচ্ছি। পিএস স্ক্রিপ্ট ডেটাবেজে বস্তুর মাধ্যমে লুপ করে এগুলি ফাইল করার জন্য স্ক্রিপ্ট করে এবং যখন এটি অপেক্ষাকৃত দ্রুত তালিকার তালিকা সংগ্রহ করতে কাজ করে, প্রতিটি স্বতন্ত্র বস্তু স্ক্রিপ্টে 5-10 মিনিট সময় নেয় - এটি ব্যবহারযোগ্য হতে খুব ধীর হয়।
আমার ধারণা রয়েছে যে একক উন্মুক্ত পোর্টটি পর্যাপ্ত নয় এবং এসএমও এবং এসএসএমএস একইভাবে সংযোগ দেওয়ার চেষ্টা করছে যা তাদেরকে ধীর করে দিচ্ছে। এটিও হতে পারে যে লোকালহোস্টের সাথে সংযোগ করার সময়, এই সরঞ্জামগুলি সেখানে উপস্থিত অন্যান্য যোগাযোগের চ্যানেলগুলি ধরে নিয়েছিল যা সাধারণত ফায়ারওয়াল হবে না? আমি ব্যবহার করা যেতে পারে যে কোন অতিরিক্ত সংযোগ পরামিতি আছে? এসএসএমএস এসএমএল সার্ভারের সাথে কথা বলার জন্য এসএমএস বা অন্য কিছু ব্যবহার করছে যে কেউ আমার এই ধারণাটি যাচাই করতে পারে?
আপডেট: আমি এখনও তদন্ত করছি, তবে এটি প্রশংসনীয় যে এটি সম্পদের সীমাবদ্ধতার চারপাশে একটি ডকার ইস্যু। কারণ ডকুমেন্টেশন অধিকাংশ নির্দেশ করে উইন্ডোজ পাত্রে যেকোনো ডিফল্ট রিসোর্স সীমাবদ্ধতার হবে না বলে মনে হয় এই বিভ্রান্তিকর (এবং এই করতে না উইন্ডোজ গুই জন্য Docker সেট করা হতে - শুধুমাত্র Linux পাত্রে জন্য ), কিন্তু এটা বাস্তবতা, উইন্ডোজে যে মনে হয় উইন্ডোজ 10 এ চলমান পাত্রে 1GB এর ডিফল্ট র্যাম বরাদ্দ পাওয়া যায় alloc আমি এখনও কোনও চলমান ধারকটির র্যাম এবং সিপিইউ বরাদ্দ দেখতে কীভাবে পরীক্ষা করব তা নির্ধারণ করার চেষ্টা করছি, তবে পরের docker run
পরামিতিগুলি ব্যবহার করে আমি পূর্বনির্ধারিত যাই হোক না কেন কেবল সেগুলি বাড়িয়ে চেষ্টা করব ।
আরও আপডেট: আমি ডকারের বাইরে কোনও ধরণের নির্ভরযোগ্য মেট্রিক পেতে ব্যর্থ হয়েছি যা আমাকে জানায় যে ধারকটির জন্য সিপিইউ এবং মেমরির সীমাবদ্ধতা রয়েছে কি। বিবিধ গবেষণা গবেষণা ইঙ্গিত দেয় যে হয় ডকারের ধারকগুলির ডিফল্টরূপে মেমরির সীমা থাকে না, বা তারা করে এবং এটি 1 জিবি, তবে এই মুহুর্তে যা যা যাচাই করতে পারি তা হ'ল docker stats
এসকিউএল ধারকটি কেবলমাত্র 750 থেকে 850 মেগের মধ্যে ব্যবহার করছে এবং কখন 4 গিগাবাইটে উপলব্ধ মেমরি সেট করতে আমি একটি রান প্যারামিটার যুক্ত করার চেষ্টা করি, এটি ত্রুটি থেকে যায়। সুতরাং আমি তদন্তের এই থ্রেডটি অনুসরণ করা বন্ধ করে দিয়েছিলাম এবং একটি পৃথক অন্ত্রের চেকের জন্য গিয়েছিলাম: চলমান ধারকটিতে একটি ইন্টারেক্টিভ পাওয়ারশেল সেশনে প্রবেশ করা এবং তারপরে আমার পাওয়ারশেল স্ক্রিপ্টটি কনটেইনারটির ভিতরে থেকে লিঙ্ক দিয়েছিলাম।
ধারকটির ভিতরে দৌড়াতে কোনও সমস্যা হয়নি। এটি মাত্র কয়েক মিনিটের মধ্যে 2780 টি অবজেক্টের মধ্য দিয়ে জ্বলে উঠেছে। আমি মনে করি এটি নিশ্চিত করে যে সমস্যাটি ধারক / হোস্ট সীমানার সাথে রয়েছে, তাই আমি দেখতে যাচ্ছি যে আমি সেই ইউডিপি বন্দরটি খুলতে পারি কিনা। আপডেট: 1434 ইউডিপি পোর্ট খোলার সাহায্য হয়নি।
আরও আপডেটগুলি — ওয়ার্কআরাউন্ড অর্জন, কোনও রিসোর্স সীমাবদ্ধতার সমস্যা নয়: উইন্ডো পাত্রে বড় মেমরির বরাদ্দ নির্ধারণ সম্পর্কিত সমস্যা রয়েছে বলে মনে হচ্ছে - আমি 3 জি এবং 2 জি এর জন্য একই ধরণের ত্রুটি পেয়েছি, তবে শেষ পর্যন্ত 1.5g দিয়ে ধারকটি চালু করতে সক্ষম হয়েছিল এবং আমি docker stats
কনটেইনারটির মধ্যে একটি পার্থক্য দেখতে পেয়েছি যা (আমার মনে হয়) নিশ্চিত করে যে এটি 1GB এর ডিফল্ট বরাদ্দ দিয়ে চলছে। ডিফল্ট সেটিংসে, PRIV ওয়ার্কিং সেট স্ট্যাট (যার জন্য আমি কোনও ডকুমেন্টেশন খুঁজে পাই না, তবে আমার সেরা অনুমান এটির র্যাম) 700MiB এবং 850MiB এর মধ্যে। সঙ্গেdocker run —memory="1.5g"
সেট করুন, এটি প্রায় 1.0GiB এর কাছাকাছি। সুতরাং এটি প্রসারিত হয়েছে, তবে এর আগে বরাদ্দের আরও বেশি পরিমাণ ছাড়তে দেখা যাচ্ছে। আমি এটি ব্যাখ্যা করি (সম্ভবত ভুলভাবে) এটি বোঝাতে যে এই সার্ভারটি (যা একেবারে কোনও লোড চলছে এবং কোনও ব্যবহারকারীর ডাটাবেস নেই) মেমরির চাপের মধ্যে নেই। এটি সর্বোচ্চ 2PiB ডিফল্ট সেট করা আছে তা নিশ্চিত করতে আমি সর্বোচ্চ সার্ভার মেমরি সেটিংস পরীক্ষা করে দেখেছি।
তারপরে বিষয়গুলি অদ্ভুত হয়ে গেল। আমি এখনও বিভিন্ন অবস্থান থেকে আমার পাওয়ার শেল স্ক্রিপ্ট চালিয়ে জিনিসগুলি পরীক্ষা করছি। ধারকটির ভিতরে দ্রুত, হোস্টের দিকে ধীর করুন। তারপরে আমি নেটওয়ার্কের আর একটি উইন্ডোজ মেশিনে আরডিপি করলাম, এবং আইপি দ্বারা আমার উইন্ডোজ 10 হোস্টের সাথে সংযোগ স্থাপন করে, এটি মেশিনটি থেকে স্ক্রিপ্টটি চালালাম। এবং এটি দ্রুত ছিল! এটি এই তত্ত্বটিকে সমর্থন করে বলে মনে হচ্ছে যে লোকালহোস্ট বলে মনে করা এমন কোনও কিছুর সাথে সংযোগ করার সময়, এসএমও এসকিউএল সার্ভারের সাথে 1433 টিসিপি পোর্ট ব্যতীত অন্য কিছু ব্যবহার করে সংযোগ দেওয়ার চেষ্টা করছে, এটি টিসিপি সংযোগে ফিরে যাওয়ার আগে খুব দীর্ঘ সময়সীমার জন্য অপেক্ষা করে।
আমি স্থানীয় হোস্ট বাদে অন্য কোনও নাম দ্বারা লোকালহোস্টের উল্লেখ করতে হোস্ট ফাইল এন্ট্রি প্রবেশ করে এই তত্ত্বটি বৈধ করার চেষ্টা করার সিদ্ধান্ত নিয়েছি:
127.0.0.1 dockersucks
আমি এসএসএমএসে লোকালহোস্ট বা "।" এর পরিবর্তে ডকারসাক্সের সাথে সংযুক্ত হয়েছি এবং তত্ক্ষণাত্ জিনিসগুলি দ্রুততর হয়েছিল। নেভিগেট অবজেক্ট এক্সপ্লোরারটি যথারীতি ছিল, এবং সংযুক্ত ডাটাবেস বা সার্ভারের বৈশিষ্ট্যগুলির মতো প্যানেলগুলি খোলার বিষয়টি স্বাভাবিকের সাথে দ্রুত ঘটে। এবং, যখন আমি সার্ভারের নাম হিসাবে এই ওরফে ব্যবহার করে উইন্ডোজ 10 হোস্ট থেকে আমার পাওয়ারশেল স্ক্রিপ্টটি চালাতাম তখন এটিও দ্রুত ছিল।
আমি উত্তরটির পরিবর্তে প্রশ্নের পরিবর্তে এই আপডেটটি যুক্ত করেছি যেহেতু আমি এখনও কেন এটি ঘটছে তার একটি ব্যাখ্যা খুঁজছি এবং যদি সেই নামের সাথে "লোকালহোস্ট" সংযোগের জন্য এটি ঠিক করার কোনও উপায় থাকে।