快速获取DB服务器当前 MEM CPU的资源消耗

USE DBA_Maintenance
GO
IF EXISTS (SELECT 1 FROM SYS.PROCEDURES WHERE type=‘p‘ AND NAME=‘SP_CheckMemAndCpu‘)
BEGIN
    DROP PROCEDURE SP_CheckMemAndCpu
END
GO

CREATE PROCEDURE SP_CheckMemAndCpu
AS
BEGIN
    SET NOCOUNT ON
    --check Mem
    select (1.0*total_physical_memory_kb/1024/1024)Total_Mem_G,
            (1.0*available_physical_memory_kb/1024/1024)Available_Physical_Mem_G,
            (1.0*system_cache_kb/1024/1024)System_Cache_G,
            system_high_memory_signal_state,
            system_low_memory_signal_state,
            system_memory_state_desc
         from sys.dm_os_sys_memory
    SELECT OBJECT_name,counter_name,(1.0*cntr_value/1024/1024)‘数据库服务器最大使用内存‘ FROM sys.dm_os_performance_counters
WHERE counter_name IN (‘Target Server Memory (KB)‘,‘Total Server Memory (KB)‘)
SELECT  total_physical_memory_kb /1024/1024 AS [物理内存(G)] ,
        available_physical_memory_kb /1024/1024 AS [可用物理内存(G)] ,
        system_cache_kb /1024/1024 AS [系统缓存内存总量(G)] ,
        ( kernel_paged_pool_kb + kernel_nonpaged_pool_kb ) /1024 AS [内核池内存总量(MB)] ,
        total_page_file_kb /1024/1024 AS [操作系统报告的提交限制的大小(G)] ,
        available_page_file_kb /1024/1024 AS [未使用的页文件的总量(G)] ,
        system_memory_state_desc AS [内存状态说明]
FROM    sys .dm_os_sys_memory 

    --check CPU
    SELECT cpu_count,max_workers_count  FROM sys.dm_os_sys_info

declare @cxpacket bigint
declare @sumwaits bigint
select @cxpacket=wait_time_ms
from sys.dm_os_wait_stats
where wait_type=‘Cxpacket‘
select @sumwaits=sum(wait_time_ms)
from sys.dm_os_wait_stats
select convert(numeric(5,4),@cxpacket/@sumwaits) AS ‘并行运行的Cxpacket等待状态阀值 <5%‘

select convert(numeric(5,4),sum(signal_wait_time_ms)/sum(wait_time_ms)) AS ‘指令等待CPU资源的时间占总时间的百分比 阀值<25%‘
from sys.dm_os_wait_stats

-----获取DB服务器上当前正在执行的SQL
SELECT TOP 10
  [session_id],
  [request_id],
  [start_time] AS ‘开始时间‘,
  [status] AS ‘状态‘,
  [command] AS ‘命令‘,
  dest.[text] AS ‘sql语句‘,
  DB_NAME([database_id]) AS ‘数据库名‘,
  [blocking_session_id] AS ‘正在阻塞其他会话的会话ID‘,
  der.[wait_type] AS ‘等待资源类型‘,
  [wait_time] AS ‘等待时间‘,
  [wait_resource] AS ‘等待的资源‘,
  [dows].[waiting_tasks_count] AS ‘当前正在进行等待的任务数‘,
  [reads] AS ‘物理读次数‘,
  [writes] AS ‘写次数‘,
  [logical_reads] AS ‘逻辑读次数‘,
  [row_count] AS ‘返回结果行数‘
  FROM sys.[dm_exec_requests] AS der
  INNER JOIN [sys].[dm_os_wait_stats] AS dows
  ON der.[wait_type]=[dows].[wait_type]
  CROSS APPLY
  sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
  WHERE [session_id]>50
  ORDER BY [cpu_time] DESC

 ----获取DB服务器上CPU被SqlServer使用情况
 DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks)FROM sys.dm_os_sys_info); 

SELECT TOP(30) SQLProcessUtilization AS [SQL Server Process CPU Utilization],
               SystemIdle AS [System Idle Process],
               100 - SystemIdle - SQLProcessUtilization AS [Other Process CPU Utilization],
               DATEADD(ms, -1 * (@ts_now - [timestamp]), GETDATE()) AS [Event Time]
FROM (
      SELECT record.value(‘(./Record/@id)[1]‘, ‘int‘) AS record_id,
            record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]‘, ‘int‘)
            AS [SystemIdle],
            record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]‘,
            ‘int‘)
            AS [SQLProcessUtilization], [timestamp]
      FROM (
            SELECT [timestamp], CONVERT(xml, record) AS [record]
            FROM sys.dm_os_ring_buffers
            WHERE ring_buffer_type = N‘RING_BUFFER_SCHEDULER_MONITOR‘
            AND record LIKE N‘%<SystemHealth>%‘) AS x
      ) AS y
ORDER BY record_id DESC;

    SET NOCOUNT OFF

END
GO
GRANT EXEC ON SP_CheckMemAndCpu TO PUBLIC
GO
时间: 2024-10-13 07:51:03

快速获取DB服务器当前 MEM CPU的资源消耗的相关文章

快速获取Jenkins上build

很多公司都会做CI持续集成,一般CI都用Jenkins.如何快速获取Jenkins 上的build? 一般公司都会有CI服务器,各个项目build都在上面触发或生成.如何快速获取CI服务器上最新的build呢? 有的人可能想到爬虫,当然爬虫可以做到,但是比较复杂,还要判断最新的build是否是success. 其实不用这么麻烦,Jenkins提供了一些接口,直接用接口就能获得build相关的信息.例如: http://$host/job/$jobname/lastSuccessfulBuild/

PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率

数据库配置文件: conn.php <?php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址 define("DB_SERVER", "172.16.7.2"); //存放数据的服务器IP地址 define("DB_USER", "root"); define("DB_PWD",&qu

编程实现获取linux服务器cpu、内存和磁盘使用率

proc文件系统介绍 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为内核与进程提供通信的接口.用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数.由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的. /proc目录中有一些以数字命名的目录,它们是进程目录.系统中当前运行的每一个进程在/proc下都对应一个以进程号为目录名的目录/proc/pi

linux10个命令快速掌握linux服务器负载

如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?通过十条命令在一分钟内对机器性能问题进行诊断. 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其中一些命令需要安装sysstat包,有一些由pr

获取当前IOS设备的CPU型号,CPU核数,GPU,GPU核数,屏幕分辨率,屏幕尺寸,PPI等信息

今天和大家一起分享下如何获取当前IOS设备的CPU型号,CPU核数,GPU,GPU核数,屏幕分辨率,屏幕尺寸,PPI等信息.相信各位发现通过苹果官方开放的API想要获取当前设备以上的一些信息似乎做不到.如今苹果的硬件更新速度相当的快,还要在网上发现有有心人收集了所有已发布苹果设备的相关设备信息,且不定期回去更新.详情请见:Blake's iOS Device Specifications Grid http://www.blakespot.com/ios_device_specification

安装SFTP/FTP插件快速编辑远程服务器文件

默认的Sublime Text 3 是没有sftp/ftp功能的,如果编辑器自带ftp势必会提高开发效率,虽然Sublime Text 3 默认是没有ftp功能,但是安装sftp插件很容易.下面是我安装步骤,希望能帮助那些喜欢Sublime Text 3的朋友. 按下Ctrl+Shift+P调出命令面板 输入install 调出 Install Package 选项并回车,然后输入ftp,下拉列表中会出现一些相关的插件,选中sftp进行安装就行了, 出现下图说明安装成功了. 装好后还需配置如下:

DB服务器中的参数优化

1.swappiness 禁止系统使用swap空间,配置/etc/sysctl.conf中的vm.swappiness=0 2.Scheduler调度 Scheduler调度,指的是磁盘的IO调度算法,下面聊一聊linux的几种IO调度算法 查看当前系统磁盘的sda的IO调度算法. cat /sys/block/sda/queue/scheduler 其中: noop(No Operation,电梯式调度算法):通过一个简单的FIFO(先进先出)队列将请求按先来先处理的顺序处理,但对于相邻的IO

MySQL Study案例之--快速了解MySQL服务器

MySQL Study案例之--快速了解MySQL服务器 1.查看数据库版本 mysql> show variables like 'version'; +---------------+----------+ | Variable_name | Value    | +---------------+----------+ | version       | 5.6.4-m7 | +---------------+----------+ 1 row in set (0.00 sec) 2.查看

JS快速获取图片宽高的方法

快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器.一.简陋的获取图片方式 // 图片地址 后面加时间戳是为了避免缓存 var img_url = 'http://www.qttc.net/static/upload/2013/13643608813441.jpg?'+Date.parse(new Date()); // 创建对象 var img = new I