কেন async_network_io অপেক্ষার প্রকার ঘটে?


10

গত সপ্তাহে আমাদের ডাটাবেসে অদ্ভুত কিছু ঘটেছিল। হঠাৎ করেই, অ্যাপ্লিকেশনটি আমাদের ব্যবহারকারীরা যারা নতুন সত্তা ইত্যাদি সংরক্ষণ করতে সক্ষম হয় নি তাদের জন্য ব্লক করা হয়েছে এসকিউএল সার্ভারের ক্রিয়াকলাপ পর্যবেক্ষণের পরে (২০০ 2008 সামঞ্জস্যতা মোডে ২০০ with) আমি নিম্নলিখিত তিনটি এন্ট্রি দেখেছি:

async_network_io অপেক্ষা প্রকারের

কিছুক্ষণ পরে, ব্যবহারকারীরা সংযোগের সময়সীমা পেয়ে গেল। আমি যখন 64৪ প্রক্রিয়াটি মেরেছিলাম তখন তারা আবার স্বাভাবিকভাবে সঞ্চয় করতে পারে।

সমস্যাটি হ'ল ব্লকের সময় তারা যে সংস্থাগুলি সংরক্ষণের চেষ্টা করেছিল তাদের ডিবিতে একাধিকবার (3 বার পর্যন্ত) সন্নিবেশ করা হয়েছিল যদিও এমন কোড রয়েছে যা এটি ঘটতে বাধা দেয় (নম্বর কলাম যা অনন্য হতে পারে তবে কোনও বাধা ছাড়াই) ... চেকটি কোডে হয়)।

আমরা সত্ত্বা ফ্রেমওয়ার্ক 6.0 ব্যবহার করি।

  • আপনারা কেউ কি জানেন যে কেন এবং কখন এই ASYNC_NETWORK_IO অপেক্ষা প্রকার ঘটে এবং কীভাবে এড়ানো যায়?
  • এবং তারা ঠিক কি মানে?

1
ডগ লেন থেকে এই নিবন্ধটি দেখুন: brentozar.com/archive/2015/07/… এটি আপনি EF এর সাথে কী দেখছেন তা সম্বোধন করতে পারে।
ক্রিস গ্রুটমিয়ার

খুব আকর্ষণীয় নিবন্ধ! আপনাকে ধন্যবাদ, আমি এটি একবার দেখুন :)
xeraphim

1
অপেক্ষার পরিসংখ্যান সংগ্রহস্থল পরীক্ষা করুন - ASYNC_NETWORK_IO । অন্যান্য সমস্যা আছে কিনা তা দেখার জন্য পল যে স্ক্রিপ্টটি সরবরাহ করে তা ব্যবহার করুন।
কিন শাহ

উত্তর:


12

ASYNC_NETWORK_IOএকরকম ইঙ্গিত দেয় যে ক্লায়েন্ট অ্যাপ্লিকেশন এসকিউএল সার্ভার হিসাবে তাদের তত দ্রুত ফলাফলগুলি প্রসেস করছে না। এটি ক্লায়েন্ট অ্যাপ্লিকেশন বা সার্ভার এবং ক্লায়েন্ট অ্যাপ্লিকেশনের মধ্যে নেটওয়ার্ক সংযোগের কারণে সমস্যা হতে পারে।

টমাস লরকের একটি পোস্ট দেখুন

ASYNC_NETWORK_IO অপেক্ষা ইঙ্গিত দেয় যে দুটি পরিস্থিতিতে একটি ঘটছে। প্রথম দৃশ্যটি হ'ল অধিবেশন (অর্থাত্, এসপিআইডি) ক্লায়েন্ট অ্যাপ্লিকেশনটির জন্য ফলাফল সেটটি প্রক্রিয়া করার জন্য অপেক্ষা করছে এবং এসকিউএল সার্ভারে ফিরে একটি সংকেত প্রেরণ করবে যে এটি আরও ডেটা প্রক্রিয়া করার জন্য প্রস্তুত। দ্বিতীয়টি হল কোনও নেটওয়ার্ক পারফরম্যান্স সমস্যা হতে পারে।

অথবা জো স্যাকের এই পোস্টটি

যেমন আপনি ইতিমধ্যে সচেতন থাকতে পারেন, ASYNC_NETWORK_IO (এসকিউএল 2005-এ দেখা হয়েছে) এবং নেটওয়র্ককিও (এসকিউএল 2000 এ দেখা হয়েছে) অপেক্ষার প্রকারগুলি হয় একটি কলিং অ্যাপ্লিকেশনের সাথে সম্পর্কিত যা এসকিউএল সার্ভার থেকে খুব দ্রুত ফলাফলগুলি প্রসেস করছে না বা একটি নেটওয়ার্ক পারফরম্যান্স সমস্যার সাথে জড়িত রয়েছে ।

যেহেতু আপনি entity framework ব্রেন্ট ওজার দ্বারা পোস্টটি ব্যবহার করছেন তাও কার্যকর হতে পারে

এই প্রশ্নের জন্য অপেক্ষার পরিসংখ্যানের দিকে তাকিয়ে আমি দেখতে পেলাম অনেকগুলি ASYNC_NETWORK_IO - প্রায়শই 1000+ মিলিসেকেন্ড। তাও কোন মানে হয়নি! এত কম সিপিইউ সময় এবং এত কিছু পাঠের সাথে একটি ক্যোয়ারী কীভাবে শেষ হতে পারে? এটি এমন নয় যে অ্যাপ্লিকেশনটি কয়েক মিলিয়ন সারি চেয়েছিল এবং ফলাফলগুলি দ্রুত যথেষ্ট পরিমাণে গ্রাস করতে পারে না।


6

ASYNC_NETWORK_IO অপেক্ষার প্রকার সম্পর্কিত কিছু ভুল ধারণা রয়েছে, মূলত নামটি যা নেটওয়ার্ক ইস্যুকে ইঙ্গিত করে, তবে এই অপেক্ষার প্রকারের কারণটি খুব বিরল।

অতিরিক্ত ASYNC_NETWORK_IO অপেক্ষা দুটি পরিস্থিতিতে হতে পারে:

  1. এসকিউএল সার্ভারের সিগন্যাল প্রেরণের জন্য যে এটি প্রসেসিংয়ের জন্য নতুন ডেটা গ্রহণ করতে পারে তার জন্য অধিবেশনটিকে ক্লায়েন্ট অ্যাপ্লিকেশনটির জন্য এসকিউএল সার্ভার থেকে প্রাপ্ত ডেটা প্রক্রিয়া করার জন্য অপেক্ষা করতে হবে। এটি একটি সাধারণ দৃশ্য যা খারাপ অ্যাপ্লিকেশন ডিজাইনের প্রতিবিম্বিত করতে পারে এবং এটি প্রায়শই ASYNC_NETWORK_IO অপেক্ষা ধরণের মানগুলির কারণ হয়ে থাকে cause

    এর মধ্যে এমন অ্যাপ্লিকেশন অনুসন্ধান করা জড়িত যা অতিরিক্ত ASYNC_NETWORK_IO অপেক্ষার প্রকারের মান ঘটাচ্ছে এবং প্রায়শই এটি তৈরি করেছেন এমন অ্যাপ্লিকেশন বিকাশকারীদের সাথে সমন্বয় সাধন করে।

  2. নেটওয়ার্ক ব্যান্ডউইদথ সর্বোচ্চ আউট হয়। একটি আটকে থাকা ইথারনেট অ্যাপ্লিকেশন থেকে পিছনে পিছনে ধীরে ধীরে ডেটা সংক্রমণ ঘটায়। এটি এবং নিজে থেকেই, প্রয়োগের দক্ষতা হ্রাস করবে।

আরও বিস্তারিত এই পৃষ্ঠায় পাওয়া যাবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.