sql = 'status'
还是一样会报错,这是因为\s属于mysql的系统命令,并不输入sql语句的范畴,所有使用python的mysqldb模块是获得不到结果的。
这样的话只能从python的os模块执行系统命令方面入手了
>>>import os
>>>os.system("mysql -u root -e status")
--------------
mysql Ver 14.15 Distrib 6.0.11-alpha, for portbld-freebsd7.2 (i386) using 5.2
Connection id: 66
Current database:
Current user: root@localhost
...
...
或者
>>>print os.popen("mysql -u root -e status").read()
--------------
mysql Ver 14.15 Distrib 6.0.11-alpha, for portbld-freebsd7.2 (i386) using 5.2
Connection id: 67
...
...
先用 top 命令查看一下 如下图:
就看画框的地方
load average 就是 CPU 的 Load
它表示 CPU 使用队列的长度 这个数字越小越好
这里有一个误区 那就是 CPU 利用率高 并不意味着负载就一定大
比方说有一个程序 它一直使用 CPU 进行运算 那么 CPU 的使用率可能逼近 100% 但是 CPU 的工作负载趋近于 1 如果同时执行两个这样的程序 则 CPU 的使用率还是逼近 100% 但是工作负载变成 2 了
也就是说 如果 CPU 的工作负载大 就代表 CPU 要在多个工作之间切换
mysql中cpu负载很高,是什么原因1、确定高负载的类型 htop,dstat命令看负载高是CPU还是IO
看具体是哪个用户哪个进程占用了相关系统资源,当前CPU、内存谁在使用
2、监控具体的sql语句,是insert update 还是 delete导致高负载
抓取mysql包分析,一般抓3306端口的数据 看出最繁忙的sql语句了
3、检查mysql日志
分析mysql慢日志,查看哪些sql语句最耗时
检查mysql配置参数是否有问题,引起大量的IO或者高CPU *** 作
innodb_flush_log_at_trx_commit 、innodb_buffer_pool_size 、key_buffer_size 等重要参数
4、检查硬件问题
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)