এসকিএল সার্ভারের মেমরি কাউন্টার পেতে এবং মান দেখানোর জন্য পাওয়ারশেল


9

নিম্নলিখিত এসকিউএল সার্ভার কাউন্টারগুলি ক্যাপচারের জন্য আমি একটি পাওয়ারশেল স্ক্রিপ্ট লিখছি:

এসকিউএল সার্ভার: মেমরি পরিচালক: মোট সার্ভার মেমরি (কেবি)

এসকিউএল সার্ভার: মেমরি পরিচালক: টার্গেট সার্ভার মেমরি (কেবি)

আমার মেশিনে এসকিউএল সার্ভারের 3 টি উদাহরণ রয়েছে, তাই আমি চাই এই স্ক্রিপ্টটি সমস্ত কাউন্টারকে গতিশীলভাবে ক্যাপচার করতে এবং কেবল 1 টি নমুনার জন্য মূল্য প্রতিবেদন করতে। আমি নিম্নলিখিতটি লেখার চেষ্টা করেছি:

Get-counter -List *SQL*Memory* | Select paths, counter | format-list # doesn't display full list

Get-counter -List *SQL*Memory* | Select paths, counter | where {_.counter -like "*server memory*"} |format-list # displays nothing

অবশেষে আমি এটি -computernameপরামিতি সহ একাধিক সার্ভারগুলিতে চালাতে চাই এবং তাই আমি এটি গতিশীলভাবে ক্যাপচার করতে চাই।

অনুগ্রহ করে কি খুঁজে পেতে আমাকে দয়া করে কেউ সাহায্য করতে পারেন? নিম্নলিখিত যে সঠিক স্ক্রিপ্টটি আমি চালাচ্ছি তা নিম্নলিখিত:

Function checkTransactionsPerSecond([string] $Hostname )
{ 
    (Get-Counter -ListSet "*Databases").Counter | Where {$_ -like "*\Transactions/sec"} #this returns nothing
#   $listofmetrics = (Get-Counter -ListSet "*Databases").Counter | Where {$_ -like "*\Transactions/sec"}
#   $listofmetrics | Get-Counter
}

clear


foreach ($Hostname in Get-Content "D:\TEMP\machines.txt")
{
    Write-Host $Hostname
    checkTransactionsPerSecond($Hostname) 
}

আগাম ধন্যবাদ

উত্তর:


7

অ্যারন বারট্রান্ড এটিতে একটি ভাল পোস্ট লিখেছিল যা বেশ বিস্তারিত ... আমি পারফরম্যান্স কাউন্টারের ডেটা সংগ্রহ করার জন্য কীভাবে পাওয়ারশেল ব্যবহার করি

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

আপনার যা প্রয়োজন তা এটি দেখুন:


$listofmetrics = (Get-Counter -ListSet "*Databases" -ComputerName $hostname).Counter | Where {$_ -like "*\Transactions/sec"}
$listofmetrics | Get-Counter

এর জন্য ধন্যবাদ ... তবে আমার যে প্রধান সমস্যাটি হচ্ছে তা হ'ল কাউন্টারগুলিতে অতিরিক্ত ফিল্টার যুক্ত করা হচ্ছে উদাহরণস্বরূপ যদি আমি নিম্নলিখিতটি চালাই: $ listOfMetrices = (গেট-কাউন্টার -লিস্টসেট "* ডাটাবেসগুলি" -কম্পিউটারনাম $ হোস্টনাম | যেখানে {$ _ $ _ পাথ-মত "* \ লেনদেন / সেকেন্ড"}) $ listOfMetrices | get-কাউন্টার এটি আমাকে ডাটাবেস বিভাগের অধীনে সমস্ত কাউন্টার দেখায় ... তবে আমি যা দেখতে চাই তা প্রতিটি ডাটাবেসের জন্য লেনদেন / সেকেন্ড হয়। দয়া করে সহায়তা করুন
মনজোট

সামঞ্জস্য উত্তর।

ধন্যবাদ শন, আপনার আপডেট হওয়া কোডটি ব্যবহার করার চেষ্টা করেছি। তবে, এটি এখন কোনও কাউন্টার খুঁজে পাচ্ছে না। (গেট-কাউন্টার -লিস্টসেট "* ডেটাবেসগুলি") Coun কাউন্টার | যেখানে {$ _-Like "* \ লেনদেন / সেকেন্ড" any কোনও কাউন্টার খুঁজে পায় না। আপনার সময়ের জন্য ধন্যবাদ
মানজোট

সত্যি? আপনি এসকিউএল সার্ভারের কোন সংস্করণ নিয়ে কাজ করছেন? আমি এটি কেবল একটি উইন্ডো সার্ভার ২০০৮ আর 2, এসকিউএল সার্ভার ২০০৮ আর 2 এ চেষ্টা করেছি।

1
আমি স্রেফ আমার উইন্ডো সার্ভার 2003, এসকিউএল 2005 এও চেষ্টা করেছি এবং এটি এর একক পাল্টা দেয়: \ এসকিউএল সার্ভার: ডাটাবেস (*) \ লেনদেন / সেকেন্ড

0

এটা দেখ:

$listofmetrics = Get-Counter -ListSet "*Databases" | Get-Counter -MaxSamples 1 | Select -ExpandProperty CounterSamples | Where {$_.path -like "\Transactions/sec"} | Select Path, CookedValue

এটি ডাটাবেসগুলির তালিকা এবং তাদের সম্পর্কিত \ লেনদেন / সেকেন্ডের আউটপুট দেবে। আমি অনুসন্ধানের শুরুতে আমার পক্ষে ত্রুটিগুলি পেয়েছি তবে আমি অনুমান করি এটি একটি অনুমতির সমস্যা। নাহলে এটি সৌন্দর্যের মতো কাজ করে। আপনি চাইলে এটি পরিষ্কার করার জন্য আপনি রেজেক্স ব্যবহার করতে পারেন :)

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