检测SqlServer服务器IO是否瓶颈】的更多相关文章

通过性能监视器监视 Avg. Disk Queue Length   小于2 Avg. Disk sec/Read , Avg. Disk sec/Write  小于10ms 可以用数据收集器定时收集 平均物理读次数最多的SQL语句: select top 50 *, (s.total_physical_reads / s.execution_count) as avephysicalreads from sys.dm_exec_query_stats s cross apply sys.dm_…
初次写博文,分享个人心得,欢迎大虾小虾来拍砖. 系统自带的性能监视器 在开始命令框中输入perfmon按enter键即可打开性能监视器 可以通过监视 % Processor Time 的值察看cpu是否遇到瓶颈,此值最好不要超出80% 如果达到了比较高的值也并不一定就是CPU的问题,一般来说CPU是不会有什么问题的,也有可能是IO,内存,程序本身的问题,CPU只是表相而已 可以用数据收集器定时收集 下面的语句可以查询出耗时最长的SQL语句  select top 50 *, (s.total_w…
性能监视器临视以下数据: Memory->Available MBytes  可用的内存  windows系统不低于1G,如果可用内存不多,则系统要求sqlserver释放内存 Paging File->%usage  用百分比显示的正在使用的 Page File 实例的数量  此值一般要低于60%,否则表示内存不够用 SqlServer:Memory Manage->Total Server Memory 可以用数据收集器定时收集…
通过性能监视器监视 Avg. Disk Queue Length   小于2 Avg. Disk sec/Read , Avg. Disk sec/Write  小于10ms 可以用数据收集器定时收集 平均物理读次数最多的SQL语句: select top 50 *, (s.total_physical_reads / s.execution_count) as avephysicalreads from sys.dm_exec_query_stats s cross apply sys.dm_…
在任务管理器中看到sql server 2000进程的内存占用,而在sql server 2005中,不能在任务管理器中查看sql server 2005进程的内存占用,要用 以下语句查看sql server 的实际内存占用: select * from sysperfinfo where counter_name like '%Memory%' 其中, Total Server Memory 表示内存占用. select locked_page_allocations_kb  from sys…
[背景] 之前我们碰到一些MySQL的性能问题,比如服务器日志备份时可能会导致慢查询增多,一句简单的select或insert语句可能执行几秒,IO负载较高的服务器更容易出现并发线程数升高,CPU上升等问题. 最近学习了MySQL InnoDB IO相关的部分内核原理,可以帮我们了解服务器IO瓶颈对MySQL性能的影响,下面以MySQL5.7.23的源码为例 [原理] 1.InnoDB实现了同步IO和异步IO两种文件读写方式 (1.)对于读操作,通常用户线程触发的数据请求都是同步读,其他后台线程…
这两天发现公司好几台阿里云ECS上的mysql生产服务器繁忙期间io等待高达百分之二三十(估计九成是没有write back),而且确定是mysql进程产生,由于跑的应用过多,开发和维护无法直接确定哪些表繁忙,哪些表不繁忙... 为了找到根源,我们需要知道哪些文件.表的io读写量最高,然后进行针对性的优化. percona server原本提供了一工具pt-ioprofile,可是这工具是采用strace实现的,有可能在系统繁忙时导致进程被kill或者hang...所以还是通过performan…
使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况 前言 本文在Debian9下采用Docker的方式安装Telegraf + Influxdb + Grafana对服务器进行监控. 首先我们需要在一台Server上安装Debian9作为监控主机,这个监控主机可以配置为可监控多台Server. 安装Docker 如果之前已经安装过旧版本的Docker,先移除旧版本的安装 sudo apt-get remove docker docker-eng…
前言 压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等查看CPU.内存使用情况,然后在排查IO问题,例如网络IO.磁盘IO的问题. 如果是磁盘IO问题,一般问题是SQL语法问题.MYSQL参数配置问题.服务器自身硬件瓶颈导致IOPS吞吐率问题. 本文主要给大家介绍的是关于MySQL服务器 IO 100%的分析与优化方案,下面话不多说了,来一起看看详细的…
在这里介绍一次因为更改网站地址而引发服务器IO读取速度,网络流入流出速度暴涨10倍的解决经历. 环境:Ubuntu + Nginx + php-cgi + Wordpress 事情是这样的,现在网站使用的wordpress搭建的,网址为www.main.com(一个例子), 因为要启用新站点news.main.com,于是开启wordpress multi sites的功能. 开启MS功能过程中,受Wordpress MS 本身的限制,需要将之前的www.main.com更改为main.com,…
今天使用sqlserver,发现了一个问题,就是使用 insert into 数据库名.dbo.表名(字段) values(值) 这样语句的时候,会返回错误: sqlserver 服务器主体 无法在当前安全上下文下访问数据库. 于是在网上找了一下资料,发现是因为trustworthy数据库属性用于指明 SQL Server 实例是否信任该数据库以及其中的内容.默认情况下,此设置为 OFF,但是可以使用 ALTER DATABASE 语句将其设置为 ON. 查看看到哪些数据库开了trustwort…
sqlserver服务器常用的性能计数器,在此标记. 性能对象 计数器 说明 Processor %Processor Time %Privileged Time 建议值:持续低于80 建议值:持续低于10 System Processor Queue Length 等候处理器的线程队列长度 建议值:此值/CPU数  <  2       Memory Available Mbytes 给操作系统预留20%的物理内存   Pages/sec Page faults/sec 建议值:低于20(Ha…
分析Web Resources中的Connections per second可以判断是否服务器连接池瓶颈. connections per second会给出两种不同状态的连接数:中断的连接和新建的连接. 分析: 1)   通常,我们可以把connections per second 和 Running Vusers合并起来分析,如上图所示: 2)   连接数越多,说明服务器的连接池越大: 3)   如果随着负载上升,连接数停止上升,说明系统的连接池已满,无法连接到更多的用户,通常这时候服务器…
JBoss/Wildfly 配置SQLserver服务器 http://blog.csdn.net/haitaolang/article/details/60467118 wildfly standalone.xml 配置文件: xa-datasource: <xa-datasource jndi-name="java:jboss/datasources/sqlserver" pool-name="sqlserver" enabled="true&q…
在生产环境中有时会要求使用机器名连接SQLServer服务器,但有时捣好久都没法连上~ 针对这个问题做个简短记录,防止以后自己再遇到记不起原因,也方便一下其他同行! 废话不多说,作为工作多年的老家伙了,以下工作肯定确保过的: SQL Server服务器端的[命名管道]协议是开启了的! SQL Server服务器端的网卡NetBIOS解析功能也开启了的! SQL Server服务器端使用着的经典的1433端口在防火墙上开了例外的! 已经确保在客户端使用IP能连接上SQL Server服务器的! 放…
原文:SQLServer 服务器架构迁移 最近服务器架构迁移,将原来的服务器架构迁移到新的服务器,新的服务器在硬件方面比之前更好!原来服务器使用双向同步,并且为水平划分到多个数据库服务器.迁移过程中,数据库方面涉及到数据一致性,帐号,重新划更多分区,规范索引,分布式查询,删除无效触发器等等.程序方面重新修改配置文件,SQL等. 原架构如图: 现在有相同的服务器,所有分库都迁移到新的服务器,再增加一台服务器作为独立的分发服务器.然而,总库已经没有多余的服务器了,怎么办?解决方法是 ,总库(DBA)…
转自http://www.iyunv.com/thread-38535-1-1.html 公司业务线上对后端节点的健康检查是通过nginx_upstream_check_module模块做的,这里我将分别介绍这三种实现方式以及之间的差异性. 一.ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带)       严格来说,nginx自带是没有针对负载均衡后端节点的健康检查的,但是可以通过默认自带的ngx_http_proxy_module…
首先我们来阐述服务器(实例级别)的权限,实例级别和数据库级别权限的最大不同在于:实例级别的权限是直接授权给登录名,而数据库级别的全显示授予数据库用户的,然后数据库用户再与登录名匹配.(再SqlServer中,登录名和用户是两个概念,登录名用于登录到数据库实例,而用户位于数据库之内,用于和登录名匹配) 举例: --指定登录名为dbtester,并且创建test数据库中的用户tester1 execute sp_grantdbaccess ‘dbtester’,'tester1' 在服务器(实例)范…
 一台服务器比较性能无外乎内存.cpu使用率.IO使用率,把这3样优化好了,你服务器的负载就要小很多,当然网络情况不在我的考虑范围,毕竟网络这个情况是很不稳定,就算你服务器上把网络优化得再好,idc不给力也没用,除非是自己公司机房,好了,今天只说下怎么找IO占用高的程序.    系统:centos 5.5 1.开启IO监控 sysctl vm.block_dump=1或echo 1 >/proc/sys/vm/block_dump   2.开启后内核会将IO读写dump到日记,用dmesg查看:…
引言 最近在做HTTP2技术相关调研,想确认一下HTTP2在什么情境下性能会比HTTP1.x有显著提升,当我把http2的本地环境(nginx+PHP)部署完成后进行相关测试时,我遇到了以下问题: (1)平时使用的都是在线分析工具,如google的PageSpeed Insights和GTmetrix,这些工具无法提供线下测试环境: (2)自己通过chrome dev-tool的Perfomance进行分析,需要手动刷新,并手动记录,需要大量的重复工作,尤其是要控制变量测试的情况: (3)通过代…
--检测复制订阅进度 --SQLSERVER2012 --创建链接服务器ReadServer,WriteServer,它们分别链接发布服务器.订阅服务器 --修改数据库名称 --在分发服务器执行 USE [distribution] go with cte_pub as (select ma.publisher_db,mp.publication_id,mp.publication,ma.article_id,t.name table_name,six.rows from [WriteServe…
在安装sqlserver2008.2012等时选择的是默认实例,服务器名称也就是电脑的名称,特别是登录本地的数据库,需要输入电脑用户名称加上SQLEXPRESS 例如:zhangsan\SQLEXPRESS 而不是自己本机的ip地址:192.168.1.xx  内部网络别的电脑也无法访问. 问题就来了,如何修改服务器名称呢,改成用本地IP或者用户名\SQLEXPRESS登录sqlserver? 解决办法: 1.开始程序=>Microsoft SQL Server 2012=>配置工具=>…
①,安装net framework3.5. ②,安装sqlserver2014(例). ③,基本配置. 安装sqlserver2014时,开启混合认证模式.当然,也可以在安装后,通过sqlserver management studio打开. 1,打开SQL Server Management Studio,连接数据库实例. 2,右键选择所连接数据库实例,选择"属性".左侧选择"安全性",确认右侧的"SQL Server 和 Windows 身份验证模式&…
现如今云服务器已经是大势所趋,国内比较著名的云服务器厂商有阿里.腾讯,国外有aws,尽管有的公司目前为止还是使用的物理机,但是无论你是使用的云服务器还是物理机,在运行服务时都必不可少的需要监听到指定的端口,而且已经有很多的服务需要监听的端口需要可以通过公网访问,如果想要保证服务正常必须确定端口可以正常访问,例如nginx服务呦,默认的80端口如果在安全组没有开通的话,是一定不能访问的呦. 接下来,我们就来学习下都有那些命令可以用来确定服务器的端口是否已经成功开通吧. 一.nc命令 nc命令也经常…
[问题] 有台MySQL 5.6.21的数据库实例以写入为主,IO %util接近100% 写入IOPS很高 [分析过程] 1.通过iotop工具可以看到当前IO消耗最高的mysql线程 2.查看线程49342的堆栈,可以看到正在进行redo log的刷新,对应的是9号文件 3.9号文件对应的是redo log的第一个文件 为什么mysql进程会频繁的刷新redo log文件,要结合redolog的刷盘策略来分析,关键是innodb_flush_log_at_trx_commit参数, 默认是1…
有时候可能需要检测下某台机器的服务是不是起来了,或者某台机器的某个库是不是能被连接又不能打开ssms也不想登陆服务器的话就可以用这个方法. 1.在桌面上右键创建个文本,然后改后缀名为udl以后保存(1.udl),至于udl是什么各位可以百度下这里就不细说了. 注:udl(Universal Data Link)是通用数据连接文件,使用通用数据链接 (UDL) 文件来保存连接字符串. 2.打开这个文件以后输入服务器的ip(因为我是本机所以用了实例名)和用户名密码就可以测试连接了,是不是很方便.…
周末在一台MySQL实例上频繁做大批量的写入测试,无意中发现MySQL的errorlog中频繁出现如下的Note:page_cleaner: 1000ms intended loop took **** ms. The settings might not be optimal. (flushed=**** and evicted=0, during the time.) 一个典型的信息如下 InnoDB: page_cleaner: 1000ms intended loop took 4068…
用公司的电脑学习如鹏网的视频,开发一个项目,用到了进程外session,因为公司电脑SQLServer 是2008 服务器名称是.  然后参考这篇文章进行设置进程外session 很顺利 完成了设置. 近期把项目放到了自己的电脑上.在运行的是出现了一系列的问题. 先说一下两台机器的环境 公司电脑: VS2017 + SQLServer2008 自己电脑:VS2015 + SQLServer2012 首先先生成运行一下看可以可以正常运行.在修改了数据库连接字符串之后运行 先报了这个错误 在查看了数…
这一个月老被一个信息科科长纠缠,原因就是他们的sql server 2008 R2老是定期的写入性能低下.我是这样认为的,但身边的人似乎都不这么想.每每我对那个挂在一个交换机上的网络存储表达担忧时,这科长总不以为然. 直到利用window的“管理工具”上的性能监控提供的信息,他们才把重点放回存储上. 检查三项内容: 1.Average disk sec/read, 平均每个读花的时间,小于10ms表示性能很好,在10ms~20ms之间表示性能可以接受,如果大于20ms,说明存在I/O问题:2.A…
在Jboss中运行run.sh的脚本下添加如下信息: #add by step #start JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9555 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" #end 重新启动系统:…