日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

查看oracle压力,一个很简单测试oracle压力方法

發布時間:2024/9/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查看oracle压力,一个很简单测试oracle压力方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天做了一個簡單的測試數據庫壓力,把東西分享了一下。

服務器情況:

操作系統版本:CentOS 5.6 -64

cpu:Intel(R) Xeon(R) CPU? X5660? @ 2.80GHz * 24

內存:Mem:????? 16425876

Swap:???? 32764556

數據庫版本:oracle10gR2

節點個數:2

測試方法如下:通過awr找出測試系統里面消耗比較多sql(可以是IO或者是執行時間)

使用python寫了如下腳本

#! /usr/bin/python

#coding=UTF-8

import cx_Oracle

import time

def hello():

'''''Hello cx_Oracle示例:

1)打印數據庫版本信息.

2)查詢表數據.'''

conn = cx_Oracle.connect("jscn/jscn@192.168.100.199:1521/jscn")

cur = conn.cursor()

try:

print "Oracle Version:%s" % conn.version

print "Table SUB_POLICY rows:"

interger = 1

while interger <= 30000000:

sql="select * from product PRODUCT_ID= '0lea940'"

sql1="select * from productcategory? where CATEGORY_ID='xhn6238'"

cur.execute(sql)

for row in cur:

print row

time.sleep(1)

cur.execute(sql1)

for row in cur:

print row

time.sleep(10)

interger = interger + 1

finally:

cur.close()

conn.close()

hello()

這里要首先安裝好python和cx_Oracle,關于如何安裝這兩個軟件,可以自己百度,過幾天我把我的安裝方法寫上去。

讓我么簡單看看這個python腳本,如果童鞋們要用這個腳本,只要修改連接串和sql部分就可以了,在這個腳本里面,首先執行"sql",然后休息1秒鐘,再執行"sql1"部分,再休息10,這個就是一個循環,一共循環30000000次。

友情提醒一下python對空格特別敏感,復制的時候要小心了。

如果只是簡單執行這一個腳本,那叫什么壓力測試呢,這個時候要請其他童鞋協助了,在dos下執行如下命令,win7下面最好使用管理員用戶執行。

--切換到腳本所在的目錄,執行以下命令

for /L %i in (1,1,50) do start "test %i" python test.py

這個腳本是把這個test.py執行開50個窗口執行。

如果想停止,可以執行以下命令

taskkill /im python.exe

現在讓我們來看一下數據庫的性能,

1、查看節點的連接數,到兩個節點上面分別查看數據庫的連接數

登錄到第一個節點,查看python連接數

SQL>? select count(*) from v$session where program='python.exe'? ;

COUNT(*)

----------

24

登錄到第二個節點,查看python連接數

SQL> select count(*) from v$session where program='python.exe'? ;

COUNT(*)

----------

26

查看總的連接數

SQL>? select count(*) from gv$session where program='python.exe'? ;

COUNT(*)

----------

50

2、查看每個用戶的pga分配大小

Select spid ,Value / 1024 / 1024 Mb

From V$session s, V$sesstat St, V$statname Sn, V$process p

Where St.Sid = s.Sid

And St.Statistic#= Sn.Statistic#

And Sn.Name Like 'session pga memory'

And p.Addr = s.Paddr and s.program='python.exe'

Order By Value Desc;

SPID?? ??????????????MB

------------ ----------

1936???????? 0.73026275

1906???????? 0.73026275

1955???????? 0.73026275

1940???????? 0.73026275

1953???????? 0.73026275

1946???????? 0.73026275

1934???????? 0.73026275

1942???????? 0.73026275

1972???????? 0.73026275

1959???????? 0.73026275

1900???????? 0.73026275

1961???????? 0.73026275

1970???????? 0.73026275

1968???????? 0.73026275

1957???????? 0.73026275

1902???????? 0.73026275

1904???????? 0.73026275

1919???????? 0.73026275

1938???????? 0.73026275

1923???????? 0.73026275

SPID???????????????? MB

------------ ----------

1921???????? 0.73026275

1925???????? 0.73026275

1917???????? 0.73026275

1910???????? 0.73026275

1908???????? 0.73026275

1927???????? 0.73026275

這里0.73026275*用戶數

3、查看數據庫服務器每個spid對應的內存使用情況(下面舉例說明)

[oracle@rac2 ~]$ top -p 1936,1906,1955,1940

top - 19:30:49 up 11 days,? 9:24,? 1 user,? load average: 0.08, 0.08, 0.03

Tasks:?? 4 total,?? 0 running,?? 4 sleeping,?? 0 stopped,?? 0 zombie

Cpu(s):? 0.3%us,? 0.1%sy,? 0.0%ni, 99.6%id,? 0.1%wa,? 0.0%hi,? 0.0%si,? 0.0%st

Mem:? 16425876k total,? 6192932k used, 10232944k free,?? 422484k buffers

Swap: 32764556k total,????? 344k used, 32764212k free,? 3581576k cached

PID USER????? PR? NI? VIRT? RES? SHR S %CPU %MEM??? TIME+? COMMAND

1936 oracle??? 15?? 0 1681m? 26m? 22m S? 0.0? 0.2?? 0:00.13 oracle

1906 oracle??? 15?? 0 1681m? 26m? 22m S? 0.0? 0.2?? 0:00.14 oracle

1955 oracle??? 15?? 0 1681m? 26m? 22m S? 0.0? 0.2?? 0:00.12 oracle

1940 oracle??? 15?? 0 1681m? 26m? 22m S? 0.0? 0.2?? 0:00.15 oracle

這里RES的值*個數

呵呵,結束了,簡單吧。

總結

以上是生活随笔為你收集整理的查看oracle压力,一个很简单测试oracle压力方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。