লোকালহোস্টের সাথে সংযোগ করার সময় এসএমও, এসএসএমএস ডকারে এসকিউএল সার্ভার পরিচালনার জন্য ধীর


9

টিএল; ডিআর: যখন আমার এসকিউএল সার্ভার ডকার ধারকটির সাথে আইপিভি 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 হোস্ট থেকে আমার পাওয়ারশেল স্ক্রিপ্টটি চালাতাম তখন এটিও দ্রুত ছিল।

আমি উত্তরটির পরিবর্তে প্রশ্নের পরিবর্তে এই আপডেটটি যুক্ত করেছি যেহেতু আমি এখনও কেন এটি ঘটছে তার একটি ব্যাখ্যা খুঁজছি এবং যদি সেই নামের সাথে "লোকালহোস্ট" সংযোগের জন্য এটি ঠিক করার কোনও উপায় থাকে।


হতে পারে আপনার ডকার উদাহরণটি কেবল চালিত? এটি যদি কোনও বন্দরের সমস্যা হত তবে আমি সন্দেহ করি আপনি এটি একেবারেই কাজ করে দেখছেন, তাই আমি এই রাস্তায় বেশি সময় ব্যয় করব না।
লোলিডিবিএ

হ্যাঁ আমি সে সম্পর্কে ভাবছিলাম, তবে ক্যোয়ারী পারফরম্যান্সটি দুর্দান্ত বলে মনে হচ্ছে এটি কেবলমাত্র নির্দিষ্ট ধরণের ক্রিয়াগুলির মধ্যে সীমাবদ্ধ বলে মনে হয়। আমার কনটেইনারটি থেকে এসএমও স্টাফ চালানোও পরীক্ষা করা উচিত এবং সেখানে সমস্যাটি উপস্থিত নেই তা যাচাই করতে হবে।
এনআরিলিংহ

1
আমি সেই অংশটি মিস করি না। এসকিউএল সার্ভার সংযোগ পুলিং ব্যবহার করে। আমি পেয়েছি যে এটি হতাশাব্যঞ্জক, তবে ধারকটির (বা "এই ক্ষেত্রে" অদ্ভুত হাইপার-ভি লাইট ভিএম ") পর্যাপ্ত পরিমাণে র‌্যাম রয়েছে কিনা তা নিশ্চিত করার জন্য আমি আপনাকে চাপিয়ে দিতে চাই। আপনার পিএস স্ক্রিপ্টটি "দ্রুত" দৌড়েছিল, তবে যথেষ্ট পরিমাণ র‌্যাম (অর্থাত 2 জিবি এর বেশি) সহ একটি মেশিনে 3000 ডলার অবধি চালানোর কয়েক মিনিট ধীর গতিতে
র‌্যান্ডলফ ওয়েস্ট

1
পুরোপুরি সত্যি বলতে, আপনি সম্ভবত আপনার মেশিনে একটি উবুন্টু হাইপার-ভি ভিএম স্পিনিং করা এবং লিনাক্সের জন্য এসকিউএল সার্ভার ইনস্টল করার চেয়ে ভাল।
র‌্যান্ডলফ ওয়েস্ট

1
@ বাজিলিক আমি আমার উত্তরে কেন তা ব্যাখ্যা করছি। আপনার স্পষ্টতা প্রয়োজন হলে সেখানে মন্তব্য করুন।
এনআরিলিংহ

উত্তর:


3

এটি সম্ভবত একটি র‌্যাম অনাহার সমস্যা।

পরীক্ষা করার বিষয়গুলি:

  • ধারকটিতে কি 4 গিগাবাইট র‌্যাম নির্ধারিত রয়েছে? এই উত্তরটি পরীক্ষা করুন ।
  • আপনি কি ধারকের ভিতরে এসকিউএল সার্ভারের জন্য সর্বোচ্চ সার্ভার মেমরি সেটিংসটি কনফিগার করেছেন? ধারকটিতে কতটা র‌্যাম এসকিউএল সার্ভার দেখতে পাবে তার উপর নির্ভর করে এটি 1 জিবি থেকে 3.25 জিবি পর্যন্ত কোনও কিছুতে সেট করা যেতে পারে।
  • আপনার হোস্টের র‌্যাম ব্যবহার করা কি ডক দ্বারা ডিস্কে পেজিং করা সম্ভব? যে কোনও বহিরাগত অ্যাপ্লিকেশন বন্ধ করুন (ওয়েব ব্রাউজারগুলি র‌্যামের বড় গ্রাহক)। এসএসএমএসের ব্যবহারের জন্য প্রায় 1 জিবি ওয়ার্কিং র‌্যাম প্রয়োজন।
  • এটি কি পুনরায় বুটের পরে দ্রুত?

যদি আমি নিজেই এটি করছিলাম তবে আমি ডকার স্টোর থেকে উইন্ডোজের জন্য ডকার সম্প্রদায় সংস্করণ ইনস্টল করব এবং তারপরে এসকিউএল সার্ভার ডকার চিত্রটি ইনস্টল করব ।

যদি আপনার ইন্টারনেট সংযোগটি যথেষ্ট দ্রুত হয় তবে আপনি আপ হতে এবং 5 মিনিটের নিচে চলতে পারেন এবং আরও সহজ উপায়ে সংস্থানগুলি বরাদ্দ করতে সক্ষম হবেন।

সম্পাদনা: আহ, নেটওয়ার্কিং


আপনি এটি ভুল বুঝেছেন কিনা তা নিশ্চিত নই, তবে আমি ধারকটির ভিতরে এসএসএমএস চালাচ্ছি না । এটি সম্ভব নয়, কারণ উইন্ডোজ পাত্রে বর্তমানে আরডিপি সংযোগ বা জিইউআই সমর্থন করে না। আমি ইতিমধ্যে জানি যে এসকিউএল সার্ভারটি ধীর নয় - তবে আমি উত্সাহের জন্য এই ডকার ধারকটি অনাহারে আছি কিনা তা খুঁজে বের করার দরকার নেই। কনটেইনারটি চালাচ্ছে উইন্ডোজ 10 হোস্ট এবং এসএসএমএসে 10 গিগাবাইট র‌্যাম এবং 2 টি কোর রয়েছে তবে ধারকটিতে কত বরাদ্দ হচ্ছে তা আমি নিশ্চিত নই।
এনআরিলিংহ

আমার উত্তরটি আবার লেখা হয়েছে
র‌্যান্ডল্ফ ওয়েস্ট

অতিরিক্ত তথ্যের জন্য কিউ আপডেট দেখুন। নোট করুন যে এটি মাইক্রোসফ্টের নিজস্ব ধারক ইমেজ বিল্ড, সুতরাং আমি মনে করি আমরা ধারনা করছি যে ধারকটির মধ্যে সেটিংস কোনও সমস্যা হয়ে উঠবে না।
এনআরিলিংহ

2
অনুমান করবেন না দয়া করে!
রেন্ডলফ ওয়েস্ট

@ এনরিলিংহ -mবিকল্পটি তদন্ত করার জন্য আমি আমার উত্তরটিতে একটি URL যুক্ত করেছি ।
র্যান্ডলফ ওয়েস্ট

3

এখানে মূল পার্থক্যটি হ'ল এসএসএমএস / এসএমও আইপিভি 4 বা আইপিভি 6 এর সাথে সংযোগ স্থাপনের চেষ্টা করছে কিনা। আপনি যদি ping localhostকোনও কমান্ড প্রম্পটে একটি করেন, আপনি এটির সমাধান দেখতে পাবেন ::1, এটি আইপিভি 6 এর সমতুল্য 127.0.0.1। সংযুক্ত হচ্ছে .একই জিনিস আছে।

আপনার docker runআদেশটি কেবলমাত্র 1433 এ পোর্ট উন্মুক্ত করে 127.0.0.1netstat -aকোন বন্দর উপলব্ধ রয়েছে তা দেখতে আপনি এটি চালিয়ে যাচাই করতে পারেন।

আপনার তৈরি করা হোস্ট ফাইলের নামটি সরাসরি সমাধান করে 127.0.0.1তবে আপনার এটির দরকার নেই, যেহেতু আপনি 127.0.0.1সরাসরি এসএসএমএসে সংযোগ করতে পারেন এবং সেইভাবে আপনার সমস্যার সমাধান করতে পারেন । আপনার হোস্ট সিস্টেমে সম্পূর্ণরূপে আইপিভি 6টি বন্ধ করা সম্ভবত কাজ করবে, তবে আমি নিশ্চিত নই যে এটি উইন্ডোজ 10 এ কতটা পরামর্শযুক্ত।

আমি কোনও আইপিভি 6 কেন এটির কারণ ঘটছে তা যদি আমাকে বলতে পারে তবে আমি গ্রহণের বিকল্প উত্তর বিবেচনা করব।


আপনি কি টিসিপি: লোকালহোস্টের সাথে সংযোগ স্থাপনের চেষ্টা করেছেন? এটি হতে পারে যে নাম লোকহোস্ট বা (স্থানীয়) বা এমনকি "এসএসএমএস / এসএমও একটি ভাগ করা মেমরি বা নামযুক্ত পাইপ সংযোগের চেষ্টা করছে" " এবং :: 1। আমি জানি না এসএসএমএস 17.4 অবশ্যই অবজেক্ট এক্সপ্লোরারে এসএমও ব্যবহার করে, তবে আমি মনে করি এটি সম্ভব।
মিস্টার মাগু

@ মিস্টারম্যাগু tcp:localhostসার্ভারের নাম ক্ষেত্রটিতে প্রবেশ করা মোটেও কাজ করে না বলে মনে হচ্ছে, তবে আমি স্পষ্টভাবে টিসিপি / আইপি সংশোধন করার বৈশিষ্ট্যগুলিতে কোনও উন্নতি ছাড়াই উল্লেখ করার চেষ্টা করেছি। আমি এখনও মনে করি সমস্যা ব্যর্থ হলে 127.0.0.1লোকালহোস্টের কাছে ধীর ফ্যালব্যাক ::1। আমি মনে করি যে আমার ক্যোয়ারী উইন্ডোগুলি কাজ করছে কারণ তারা সংযোগ বজায় রেখেছিল, যেখানে আমার স্ক্রিপ্টটি এসএমও ব্যবহার করে (সম্ভবত) বার বার নতুন সংযোগ তৈরি করছে।
এনআরিলিংহ

1
@ এনরিলিংহ আমি এই একই সমস্যাটি দেখছি - আপনার সমস্যা সমাধানের এবং ব্যাখ্যাটি সত্যই সহায়ক ছিল। আমার হোস্ট এনভায়রনমেন্ট থেকে 127.0.0.1 ( লোকালহস্ট নয় ) হিসাবে আমার স্ক্যুয়াল সার্ভার ধারকটিকে সম্বোধন করা আমি সাধারণভাবে কাজ করা ধারক সংযোগগুলিতে হোস্ট পেতে পারি ।
রজারসিলিটো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.