檢查 os 效能(linux)
一,OS空間相關
1,檢查硬碟
[root@dev ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 117G 5.5G 105G 5% /
/dev/sda2 807G 745G 21G 98% /ebs10
/dev/sdb2 510G 117G 367G 25% /ebs20
tmpfs 16G 3.1M 16G 1% /dev/shm
2,查詢最大檔案
首先定位資料夾,假設在/EBS10
root@dev ~]# cd /ebs10/
[root@dev ebs10]# find . -ls|sort -nrk7|head -10
[root@dev ebs10]# find . -ls|sort -nrk7|head -10
20316164 92682352 -rwxrwxrwx 1 root root 94814035107 May 10 12:46 ./oracle/prod/db2013.tar.gz
66879687 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:01 ./oracle/prod/db/apps_st/data/undo07.dbf
66879685 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:03 ./oracle/prod/db/apps_st/data/a_txn_data08.dbf
66879681 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:03 ./oracle/prod/db/apps_st/data/a_txn_data10.dbf
66879678 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 06:47 ./oracle/prod/db/apps_st/data/system19.dbf
66879677 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:03 ./oracle/prod/db/apps_st/data/undo06.dbf
66879670 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:03 ./oracle/prod/db/apps_st/data/a_txn_ind10.dbf
66879656 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:04 ./oracle/prod/db/apps_st/data/undo05.dbf
66879640 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:03 ./oracle/prod/db/apps_st/data/a_txn_data07.dbf
66879635 20992032 -rw-r----- 1 oradev dba 21474844672 May 14 10:04 ./oracle/prod/db/apps_st/data/a_txn_ind11.dbf
如果掛載滿了可以考慮,刪除追蹤日誌,網路日誌,歸檔日誌,舊的安裝檔案等
查詢給出目錄下佔用空間最大的資料夾
[root@dev ebs10]# du -s|sort -nr|head -10
671799376 .
檢查指令碼
[root@dev oradev]# cat disk.sh
#!/bin/bash
mntlist="/ebs10 / /ebs20 /dev/shm"
for ml in $mnlist
do
echo $ml
usedspc=$(df -h $ml|awk '{print $5}'|grep -v capacity|cut -d "%" -f1 -)
BOX=$(uname -a|awk '{print $2}')
#
case $usedspc in
[0-9])
arcstat='relax,lots of disk space:$usedspc"
;;
[1-7][0-9])
arcstat='disk spce okay:$usedspc"
;;
[8][0-9])
arcstat="space getting low:$usedspc"
;;
[9][0-9])
arcstat="waring,runing out of space:$usedspc"
echo $arcstat $ml|mailx -s "space on:$BOX" weias@***.com.cn
;;
[1][0][0])
arcstat="uodate resume, no space left:$usedspc"
echo $arcstat $ml|mailx -s "space on:$BOX" weias@****.com.cn
;;
* )
arcstat="huh?:$usedspc"
;;
esac
#
BOX=$(uanme-a|awk '{print $2}')
echo $arcstat
#
done
#
2,確定伺服器效能是否與CPU,I/O 記憶體或者網路相關
vmstat 1 10 每一秒執行一次 執行10次
3,確定消耗資源最多的程式
[root@dev prod]# top //確定程式
[root@dev prod]# ps 31159
PID TTY STAT TIME COMMAND
31159 ? Ss 1:54 oracledev (LOCAL=NO)
最個常用的按鈕 < > 排序 d 改變重新整理時間 空格鍵 立刻重新整理 F/0 選擇一個排序 z 改變顏色
6.5 確定cpu 和記憶體的瓶頸
最耗CPU的程式
[root@test4 ~]# ps -e -o pcpu,pid,user,tty,args|sort -n -k 1 -r|head
95.4 19360 appldev ? frmweb webfile=5,8,test4_9095,/ebs10/oracle/prod/inst/apps/TEST4_test4/logs/ora/10.1.2/forms/socket.log
82.2 15911 appldev ? frmweb webfile=5,24,test4_9095,/ebs10/oracle/prod/inst/apps/TEST4_test4/logs/ora/10.1.2/forms/socket.log
23.0 28378 oradev ? oracleTEST4 (LOCAL=NO)
20.0 28380 oradev ? oracleTEST4 (LOCAL=NO)
17.0 28382 oradev ? oracleTEST4 (LOCAL=NO)
14.0 28384 oradev ? oracleTEST4 (LOCAL=NO)
2.6 28280 oradev ? oracleTEST4 (LOCAL=NO)
1.6 18861 oradev ? oracleTEST4 (LOCAL=NO)
1.2 15783 appldev ? /ebs10/oracle/prod/apps/tech_st/10.1.3/Apache/Apache/bin/httpd -d /ebs10/oracle/prod/apps/tech_st/10.1.3/Apache/Apache -DSSL -f /ebs10/oracle/prod/inst/apps/TEST4_test4/ora/10.1.3/Apache/Apache/conf/httpd.conf
0.9 4467 oradev ? /ebs10/oracle/prod/db/tech_st/11.1.0/bin/tnslsnr TEST4 -inherit
4,最耗記憶體的程式
[root@test4 ~]# ps -e -o pmem,pid,user,tty,args|sort -n -k 1 -r|head
9.3 19911 oradev ? oracleTEST4 (LOCAL=NO)
9.1 4401 oradev ? ora_smon_TEST4
8.7 4615 oradev ? ora_cjq0_TEST4
8.5 4435 oradev ? ora_q001_TEST4
8.4 21971 oradev ? oracleTEST4 (LOCAL=NO)
8.3 21959 oradev ? oracleTEST4 (LOCAL=NO)
8.0 21962 oradev ? oracleTEST4 (LOCAL=NO)
8.0 21946 oradev ? oracleTEST4 (LOCAL=NO)
7.8 4395 oradev ? ora_dbw0_TEST4
7.8 20066 oradev ? oracleTEST4 (LOCAL=NO)
取一個表名
[root@test4 ~]# alias topc='ps -e -o pcpu,pid,user,tty,args|sort -n -k 1 -r|head'
6,[oraprod@ebsdb ~]$ iostat -xd (X擴充套件 d裝置) 10
檢查使用過多的IO
select *
from (select a.PARSING_SCHEMA_NAME,
a.DIRECT_WRITES,
a.DISK_READS,
substr(a.SQL_TEXT, 1, 75)
from v$sql a
order by a.DISK_READS desc)
where rownum < 20
檢查當前正在等待的I/O
select * from v$session where event like 'db file%read
二 分析是否存在網路瓶頸
[root@backup 1]# netstat -ptc
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
getnameinfo failed
tcp 0 148 backup.bitland.com.cn:ssh [UNKNOWN]:4414 ESTABLISHED 26961/0
如果Send-Q值高說明網路過載
檢查資料的連線性
ping db/ip
tnsping ip
三 將一個資源密集性的程式對映到一個資料庫程式
1 ,找出最耗cpu 的資源
[oraprod@ebsdb ~]$ ps -e -o pcpu,pid,user,tty,args|sort -n -k 1 -r|head
88.8 28799 oraprod ? ora_j000_prod
74.6 7103 oraprod ? oracleprod (LOCAL=NO)
35.8 7506 oraprod ? oracleprod (LOCAL=NO)
23.0 7307 oraprod ? oracleprod (LOCAL=NO)
19.2 29360 oraprod ? oracleprod (LOCAL=NO)
18.2 23699 oraprod ? oracleprod (LOCAL=NO)
12.9 19182 oraprod ? oracleprod (LOCAL=NO)
11.7 3824 oraprod ? oracleprod (LOCAL=NO)
10.0 19271 oraprod ? oracleprod (LOCAL=NO)
2,查詢資料字典 28799
SELECT SQL_TEXT,a.SQL_ID
FROM V$SQLAREA A, V$SESSION B
WHERE A.SQL_ID = B.PREV_SQL_ID
AND B.SID = (select s.sid
from v$session s,v$process p
where p.spid= 29360 and s.PADDR=p.ADDR );
執行計劃
select * from table(dbms_xplan.display_cursor(('av6u1g3pbjfs0')))
通過 ordebug 確認
SQL> oradebug setospid 29360;
Oracle pid: 183, Unix process pid: 29360, image: oracle@ebsdb.***.com.cn
SQL> oradebug current_sql;
select * from APPS.OKL_LA_RELEASE_ASSETS_UV
SQL> oradebug tracefile_name;
/ebs10/oracle/prod/db/tech_st/11.1.0/admin/prod_ebsdb/diag/rdbms/prod/prod/trace/prod_ora_29360.trc
SQL> oradebug help 幫助
3,終止一個密集的程式
alter system kill session 'sid,serial#');
kill -i pid
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15187685/viewspace-761149/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mongo效能檢查Go
- OS(AIX5.3)系統檢查AI
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- 使用 dd 檢查儲存效能
- 【效能優化】增量檢查點優化
- 從oracle v$version檢視中查詢os的資訊Oracle
- LINUX網路卡檢查Linux
- 1分鐘內檢查Linux伺服器效能的10條命令Linux伺服器
- mysql效能的檢查和調優方法MySql
- 調查稱開發者相比Linux更喜歡Mac OSLinuxMac
- Oracle效能問題檢查 - 常用查詢指令碼(final)Oracle指令碼
- Linux命令列效能檢測工具Linux命令列
- Go 效能提升tips--邊界檢查Go
- oracle 資料庫效能健康檢查指令碼Oracle資料庫指令碼
- Linux系統檢查指令碼Linux指令碼
- Kdump 檢查 Linux 核心崩潰!Linux
- linux檢查埠狀態命令Linux
- 【Oracle九大效能檢視】之2.v$sqlarea_查效能SQLOracleSQL
- 如何利用九條命令在一分鐘內檢查Linux伺服器效能?Linux伺服器
- (轉)oracle 資料庫效能健康檢查指令碼Oracle資料庫指令碼
- 如何檢查linux伺服器配置Linux伺服器
- Linux查詢檢視幫助命令Linux
- linux和aix核心引數檢查LinuxAI
- 使用 Kdump 檢查 Linux 核心崩潰Linux
- 在Linux中,如何檢視網路效能?Linux
- Flutter vs Native與React-Native:檢查效能FlutterReact
- oracle 資料庫效能健康檢查指令碼[轉帖]Oracle資料庫指令碼
- 巡檢指令碼OS+Oracle指令碼Oracle
- [Mac OS X] 如何在終端檢視 Mac OS 版本資訊Mac
- Linux + OS RedHat AS 5LinuxRedhat
- linux os 監控Linux
- 檢查LINUX環境的CPU快取Linux快取
- linux c程式記憶體檢查器LinuxC程式記憶體
- Linux檢查遠端埠是否通暢Linux
- vmstat檢視分析Linux系統負載效能Linux負載
- Memcache 記憶體分配策略和效能(使用)狀態檢查記憶體
- 安卓7.0安裝app產生android.os.FileUriExposedException異常(都檢查檢查你的自動更新有沒有問題吧)安卓APPAndroidException
- 如何檢查 Linux 中的開放埠列表?Linux