如何识别SQL Server中的IO瓶颈
问题: 我们可能经常会遇到SQLServer数据库频繁关闭的情况。在分析了内存和CPU使用情况后,我们需要继续调查根源是否在I/O.我们应该如何识别SQLServer是否有I/O相关的瓶颈? 解决: 当数据页经常从缓冲池中移进移出的时候,I/O子系统就会成为SQLServer性能问
问题:
我们可能经常会遇到SQLServer数据库频繁关闭的情况。在分析了内存和CPU使用情况后,我们需要继续调查根源是否在I/O.我们应该如何识别SQLServer是否有I/O相关的瓶颈?
解决:
当数据页经常从缓冲池中移进移出的时候,I/O子系统就会成为SQLServer性能问题的关键因素之一。事务日志和tempdb同样也会产生重大的I/O压力。因此,你必须确保你的I/O子系统能按照预期运行。否则你将会成为响应时间增长和频繁超时的受害者。在这篇文章中,将描述如何使用内置工具识别I/O相关瓶颈,并提供一些磁盘配置的方法:
性能计数器(Performance Monitor):
可以使用性能计数器来检查I/O子系统的负荷。下面的计数器可用于检查磁盘性能:
PhysicalDisk Object:Avg.DiskQueue Length:计算从物理磁盘中的平均读和写的请求队列。过高的值代表磁盘操作处于等待状态。当这个值在SQLServer峰值时长期超过2,证明需要注意了。如果有多个硬盘,就需要把这些数值除以2.比如,有4个硬盘,且队列为10,那么平均值就是10/4=2.5,虽然也证明需要关注,但不能使用10这个值。
Avg.Disk Sec/Read和Avg.Disk Sec/Write:显示从磁盘读或者写入磁盘的平均时间。10ms内是很好的表现,20以下还算能接受。高于此值证明存在问题。
Physical Disk:%Disk Time:在磁盘忙于读或者写请求的时候持续时间的比率。根据拇指定律,此值应该小于50%.
Disk Reads/Sec和Disk Writes/Sec计数器显示出在磁盘中读写操作的速率。这两个值应该小于磁盘能力的85%.当超过此值,,磁盘的访问时间将以指数方式增长。
可以通过以下方式来计算逐渐增长的负载的能力。一种方法是使用SQLIO.你应该找到吞吐量比较稳定,但缓慢增长。
可以使用以下公式来计算RAID配置:
Raid 0: I/O per disk = (reads + writes) / number ofdisks
Raid 1: I/O per disk = [reads + (writes*2)] / 2
Raid 5: I/O per disk = [reads + (writes*4)] / number of disks
Raid 10: I/O per disk = [reads + (writes*2)] / number of disks
比如:对于RAID 1,如果得到下面的计数器:
Disk Reads/sec = 90
Disk Writes/sec =75
根据公式:[reads + (writes*2)] / 2 or [90 + (75*2)] / 2 = 120I/Os每个磁盘。
动态管理视图(DMVs):
有很多游泳的DMVs可以用于检查I/O瓶颈:
当一个页面被用于读或者写访问且页面在缓冲池中不存在或不可用时,会引发一个I/O闩锁等待(I/O latch),它会在PAGEIOLATCH_EX/PAGEIOLATCH_SH(具体根据请求类型而定)。这些等待表明一个I/O瓶颈。可以使用sys.dm_os_wait_stats找到闩锁等待的信息。如果你保存了SQLServer正常运行下的waiting_task_counts和wait_time_ms值,并且于此次的值做对比,可以识别出I/O问题:
select *
fromsys.dm_os_wait_stats
where wait_type like'PAGEIOLATCH%'
order by wait_typeasc
挂起的I/O请求可以在下面查询中查到,并且用于识别那个磁盘负责的这个瓶颈:
select database_id,
file_id,
io_stall,
io_pending_ms_ticks,
scheduler_address
from sys.dm_io_virtual_file_stats(NULL, NULL) iovfs,
sys.dm_io_pending_io_requests as iopior
where iovfs.file_handle = iopior.io_handle
磁盘碎片(Disk Fragmentation):
建议你检查磁盘碎片和配置用于SQLServer实例的磁盘。在NTFS文件系统中的碎片会产生严重的性能影响。磁盘需要经常整理碎片并且指定整理碎片计划。研究表明,一些情况下SAN在整理碎片后性能更差。因此,SAN必须根据实际情况对待。
NTFS上的索引碎片同样能引起高I/O好用。但是这和在SANs中的效果是不一样的。
磁盘配置/最佳实践:
常规情况,你应该把日志文件和数据文件分开存放以获得更好的性能。对于重负载的数据文件(包括tempdb)的I/O特性是随机读取。对于日志文件,是顺序访问的,除非事务需要回滚。
对于内置磁盘仅仅可以用于数据库日志文件,因为它们对顺序I/O有很好的性能,但是对随机I/O性能低下。
数据库的数据和日志文件应该放在对应专用的磁盘中。确保良好的性能。建议日志文件放在两个内置磁盘,并配置为RAID 1.数据文件驻留在仅用于给SQLServer访问的SAN系统中,并只被查询和报表控制。特殊访问应该被禁止。
写缓冲在可能的情况下应该被允许,并保证断电也能使用。
为了尽可能保证对于OLTP系统的I/O瓶颈影响最小化,不应该把OLAP和OLTP环境混合。并且保证你的代码优化及有合适的索引来避免不必要的I/O.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

WindowsServerBackup ialah fungsi yang disertakan dengan sistem pengendalian WindowsServer, direka untuk membantu pengguna melindungi data penting dan konfigurasi sistem, serta menyediakan penyelesaian sandaran dan pemulihan yang lengkap untuk perusahaan peringkat kecil, sederhana dan perusahaan. Hanya pengguna yang menjalankan Server2022 dan lebih tinggi boleh menggunakan ciri ini. Dalam artikel ini, kami akan menerangkan cara memasang, menyahpasang atau menetapkan semula WindowsServerBackup. Cara Menetapkan Semula Sandaran Pelayan Windows Jika anda mengalami masalah dengan sandaran pelayan anda, sandaran mengambil masa terlalu lama, atau anda tidak dapat mengakses fail yang disimpan, maka anda boleh mempertimbangkan untuk menetapkan semula tetapan sandaran Pelayan Windows anda. Untuk menetapkan semula Windows

Bagaimana untuk melaksanakan pengecaman pertuturan dan sintesis pertuturan dalam C++? Pengecaman pertuturan dan sintesis pertuturan ialah salah satu hala tuju penyelidikan yang popular dalam bidang kecerdasan buatan hari ini, dan ia memainkan peranan penting dalam banyak senario aplikasi. Artikel ini akan memperkenalkan cara menggunakan C++ untuk melaksanakan pengecaman pertuturan dan fungsi sintesis pertuturan berdasarkan platform terbuka Baidu AI, dan menyediakan contoh kod yang berkaitan. 1. Pengecaman pertuturan Pengecaman pertuturan ialah teknologi yang menukar pertuturan manusia kepada teks Ia digunakan secara meluas dalam pembantu suara, rumah pintar, pemanduan autonomi dan bidang lain. Berikut ialah pelaksanaan pengecaman pertuturan menggunakan C++

Dengan perkembangan berterusan teknologi kecerdasan buatan, teknologi pengesanan dan pengecaman muka telah menjadi semakin meluas digunakan dalam kehidupan seharian. Teknologi pengesanan dan pengecaman muka digunakan secara meluas dalam pelbagai keadaan, seperti sistem kawalan akses muka, sistem pembayaran muka, enjin carian muka, dsb. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java juga boleh melaksanakan teknologi pengesanan dan pengecaman muka. Artikel ini akan memperkenalkan cara menggunakan Java untuk melaksanakan teknologi pengesanan dan pengecaman muka. 1. Teknologi pengesanan muka Teknologi pengesanan muka merujuk kepada teknologi yang mengesan wajah dalam imej atau video. dalam J

Apakah sistem pengecaman tanda lalu lintas? Sistem pengecaman tanda lalu lintas bagi sistem keselamatan kereta, yang terjemahan bahasa Inggerisnya ialah: Pengecaman Tanda Lalu Lintas, atau singkatannya TSR, menggunakan kamera menghadap ke hadapan digabungkan dengan mod untuk mengecam tanda lalu lintas biasa (had laju, tempat letak kereta, pusingan U, dll.). Ciri ini memberi amaran kepada pemandu tentang papan tanda lalu lintas di hadapan supaya mereka boleh mematuhinya. Fungsi TSR mempertingkatkan keselamatan dengan mengurangkan kemungkinan pemandu tidak akan mematuhi undang-undang jalan raya seperti papan tanda berhenti dan mengelak belok kiri haram atau pelanggaran lalu lintas lain yang tidak disengajakan. Sistem ini memerlukan platform perisian yang fleksibel untuk meningkatkan algoritma pengesanan dan menyesuaikan diri dengan tanda lalu lintas di kawasan yang berbeza. Prinsip pengecaman tanda lalu lintas Pengecaman tanda lalu lintas juga dipanggil TS

Apabila anda menggunakan komputer win10, pernahkah anda menghadapi situasi di mana anda tidak dapat menyambung ke Internet? Jika anda tidak tahu bagaimana untuk menyelesaikan masalah ini, mari kita lihat artikel ini. 1. Gunakan kombinasi kekunci Win+I untuk membuka tetingkap tetapan, klik untuk memilih Rangkaian dan Internet. 2. Klik Ethernet di sebelah kiri tetingkap Rangkaian dan INTERNET, dan kemudian klik Tukar Pilihan Penyesuai dalam tetingkap kanan. 3. Dalam tetingkap Sambungan Rangkaian, klik kanan Ethernet (desktop, sila layan peranti mudah alih mengikut kesesuaian), dan klik Lumpuhkan dalam menu. 4. Selepas ia dipaparkan sebagai dilumpuhkan, klik kanan tetikus Ethernet dan laksanakan arahan dayakan. Setelah Ethernet didayakan, masalah itu harus diselesaikan. Berikut ialah pengenalan kepada pengenalan segera kegagalan rangkaian Win10 tanpa

Sempena mengeluarkan versi Windows Server binaan 26040, Microsoft mengumumkan nama rasmi produk: Windows Server 2025. Turut dilancarkan ialah versi Windows11WindowsInsiderCanaryChannel build26040. Sesetengah rakan mungkin masih ingat bahawa bertahun-tahun yang lalu seseorang berjaya menukar Windows NT daripada mod stesen kerja kepada mod pelayan, menunjukkan persamaan antara pelbagai versi sistem pengendalian Microsoft. Walaupun terdapat perbezaan yang jelas antara versi semasa sistem pengendalian pelayan Microsoft dan Windows 11, mereka yang memberi perhatian kepada butiran mungkin tertanya-tanya: mengapa Windows Server mengemas kini jenama,

Bagaimana untuk mengubah suai nama lalai nginx, anda boleh menyamarkannya sedikit, atau anda boleh memasang Petua: Secara amnya, pengubahsuaian dibuat sebelum nginx disusun Selepas pengubahsuaian, kod tersebut perlu disusun semula seperti berikut: scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

Semasa Microsoft mengeluarkan kemas kini pratonton Win11 untuk desktop, hari ini ia turut mengeluarkan pratonton Saluran Perkhidmatan Jangka Panjang (LTSC) Windows Server Build 25335. Seperti biasa, Microsoft tidak menerbitkan log perubahan yang lengkap, malah menyediakan catatan blog yang sepadan. Microsoft telah melaraskan log kemas kini versi pratonton Windows Server untuk menjadikannya sama dengan versi saluran Canary Jika tiada kandungan baharu diperkenalkan, catatan blog rasmi tidak akan disiarkan. Nota daripada Laman Utama IT: Jenama pelayan belum dikemas kini dan masih Windows Server 2022 dalam versi pratonton. Di samping itu, Microsoft memanggil versi ini Windows Server vNext dan bukannya versi Windows yang sudah ada di pasaran.
