




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)用文案文案大全Linux運(yùn)維工程師工作手冊(cè)釋放內(nèi)存:sync
echo
3
>
/proc/sys/vm/drop_caches
Linux查看Dell服務(wù)器型號(hào)
命令:
dmidecode
|
grep
"Product
Name"
查看系統(tǒng)負(fù)載:
cat
/proc/loadavg
0.0
0.00
0.00
1/283
10904
意思是:前三個(gè)是系統(tǒng)負(fù)載,1/283中,1代表此時(shí)運(yùn)行隊(duì)伍中的進(jìn)程個(gè)數(shù),而283是代表此時(shí)的進(jìn)程總數(shù)
10904到此為止,最后創(chuàng)建的一個(gè)進(jìn)程ID。
系統(tǒng)裝好后,要做的事如下:
關(guān)閉防火墻Selinux:
vim
/etc/selinux/config
把SELINUX=enforcing改成SELINUX=disabled
更改主機(jī)名:
vim
/etc/sysconfig/network
修改主機(jī)名,不要用localhost
添加hosts主機(jī)記錄
vim
/etc/hosts中,在后面,添加自己的主機(jī)名
創(chuàng)建0-9
a-z目錄
for
i
in
`seq
0
9`
{a..z};do
mkdir
-p
$i;done:
測(cè)試硬盤(pán)性能工具:iozone
監(jiān)視服務(wù)器每少上下文切換數(shù)次工具:Nmon(很不錯(cuò)的性能監(jiān)視工具)
#占用內(nèi)存大小前10的進(jìn)程
ps
-eo
comm,size
--sort
-size
|
head
-10
#占用cpu使用前10的進(jìn)程
ps
-eo
comm,pcpu
--sort
-pcpu
|
head
-10
一、Apache服務(wù)優(yōu)化:
2
1.配置cronolog進(jìn)行日志輪詢
2
2.錯(cuò)誤頁(yè)面優(yōu)雅顯示
2
3.mod_deflate文件壓縮功能
3
4.mod_expires緩存功能
4
5.更改apache的默認(rèn)用戶
5
6.worker模式,提升并發(fā)數(shù)(可以達(dá)到2000-5000)
5
7.屏蔽apache版本等敏感信息
6
8.apache目錄文件權(quán)限設(shè)置(root,目錄755,文件644)
6
9.開(kāi)啟httpd-mpm.conf
增加連接數(shù)
6
10.
apache防盜鏈功能
8
11.禁止目錄Index
8
12.
禁止用戶覆蓋(重載)
8
13.關(guān)閉CGI
9
14.避免使用.htaccess文件(分布式配置文件)
9
15.
apache的安全模塊
9
16.正確途徑取得源代碼,勤打apache補(bǔ)丁
10
17.apache日志授予root
700權(quán)限
10
18.系統(tǒng)內(nèi)核參數(shù)優(yōu)化
10
19.禁止PHP解析指定站點(diǎn)的目錄
10
20.使用tmpfs文件系統(tǒng)替代頻繁訪問(wèn)的目錄
11
21盡可能減少
HTTP
請(qǐng)求數(shù)
11
22使用CDN做網(wǎng)站加速
12
查看你的服務(wù)器網(wǎng)絡(luò)連接狀態(tài)
netstat
-n
|
awk
'/^tcp/
{++S[$NF]}
END
{for(a
in
S)
a,
S[a]}'
◆CLOSED:無(wú)連接是活動(dòng)的或正在進(jìn)行
◆LISTEN:服務(wù)器在等待進(jìn)入呼叫
◆SYN_RECV:一個(gè)連接請(qǐng)求已經(jīng)到達(dá),等待確認(rèn)
◆SYN_SENT:應(yīng)用已經(jīng)開(kāi)始,打開(kāi)一個(gè)連接
◆ESTABLISHED:正常數(shù)據(jù)傳輸狀態(tài)
◆FIN_WAIT1:應(yīng)用說(shuō)它已經(jīng)完成
◆FIN_WAIT2:另一邊已同意釋放
◆ITMED_WAIT:等待所有分組死掉
◆CLOSING:兩邊同時(shí)嘗試關(guān)閉
◆TIME_WAIT:另一邊已初始化一個(gè)釋放
◆LAST_ACK:等待所有分組死掉
ESTABLISHED的值其實(shí)也是當(dāng)前的并發(fā)數(shù),這個(gè)可重點(diǎn)關(guān)注下;另外,可關(guān)注下TIME——WAIT這項(xiàng)的數(shù)值。Linux下高并發(fā)的Squid服務(wù)器,TCP
TIME_WAIT套接字?jǐn)?shù)量經(jīng)常達(dá)到兩、三萬(wàn),服務(wù)器很容易被拖死。通過(guò)修改Linux內(nèi)核參數(shù),可以減少Squid服務(wù)器的TIME_WAIT套接字?jǐn)?shù)量。
#查看系統(tǒng)本地可用端口極限值
cat
/proc/sys/net/ipv4/ip_local_port_range
尋找惡意IP并用iptables禁止掉
netstat
-an|
grep
:80
|
grep
-v
|awk
'{
$5
}'
|
sort|awk
-F:
$1,$4}'
|
uniq
-c
|
awk
'$1
>50
$1,$2}'
4.5備份單個(gè)數(shù)據(jù)庫(kù)
mysqldump
-u
用戶
–p’密碼’
--default-character-set=latin1
數(shù)據(jù)庫(kù)名
>
備份文件名(數(shù)據(jù)庫(kù)默認(rèn)編碼是latin1)
普通備份:
mysqldump
-uroot
-p'oldboy123'
oldboy
>
/server/bak/oldboy.sql
壓縮備份:
mysqldump
-uroot
-p'oldboy123'
oldboy
|gzip
>
/server/bak/oldboy.sql.gz
設(shè)置字符集備份:
mysqldump
-uroot
-p'oldboy123'
oldboy
--default-character-set=gbk
|gzip
>
/server/bak/oldboy.sql.gz
執(zhí)行結(jié)果:
[root@oldboy
~]#
mkdir
/server/bak
-p
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
oldboy
>
/server/ba
backup/
bak/
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
oldboy
>
/server/bak/oldboy.sql
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
oldboy
|gzip
>
/server/bak/oldboy.sql.gz
[root@oldboy
~]#
ls
-l
/server/bak/
total
8
-rw-r--r--
1
root
root
1991
Apr
9
00:51
oldboy.sql
-rw-r--r--
1
root
root
801
Apr
9
00:51
oldboy.sql.gz
4.6
mysqldump在做啥?
mysqldump實(shí)際上就是把數(shù)據(jù)從mysql庫(kù)里以邏輯的sql語(yǔ)句的形式導(dǎo)出。
備份的數(shù)據(jù)過(guò)濾掉注釋?zhuān)?/p>
[root@oldboy
~]#
egrep
-v
"\*|--|^$"
/server/bak/oldboy.sql
DROP
TABLE
IF
EXISTS
`test`;CREATE
TABLE
`test`
(
`id`
int(4)
NOT
NULL
AUTO_INCREMENT,
`name`
char(20)
NOT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=MyISAM
AUTO_INCREMENT=12
DEFAULT
CHARSET=gbk;
LOCK
TABLES
`test`
WRITE;
INSERT
INTO
`test`
VALUES
(1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'yingsui'),(7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'鑰佺敺瀛?),(11,'鎴?);
<==這里是亂碼,是因?yàn)閷?dǎo)出時(shí)的格式?jīng)]加字符集,而系統(tǒng)當(dāng)前字符集又是zh_cn.gb18030格式,一般恢復(fù)到數(shù)據(jù)庫(kù)里會(huì)正常,只是系統(tǒng)外查看不正常而已。另外insert是批量插入的方式,這樣在恢復(fù)時(shí)效率很高。
UNLOCK
TABLES;
提示:看到了吧,就是我們?cè)?jīng)插入的表和數(shù)據(jù)。
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
oldboy
--default-character-set=gbk
>
/server/bak/oldboy-gbk.sql
[root@oldboy
~]#
egrep
-v
"\*|--|^$"
/server/bak/oldboy-gbk.sql
DROP
TABLE
IF
EXISTS
`test`;
CREATE
TABLE
`test`
(
`id`
int(4)
NOT
NULL
AUTO_INCREMENT,
`name`
char(20)
NOT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=MyISAM
AUTO_INCREMENT=12
DEFAULT
CHARSET=gbk;
LOCK
TABLES
`test`
WRITE;
INSERT
INTO
`test`
VALUES
(1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'yingsui'),(7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'老男孩'),(11,'我');
<==。其他亂碼是當(dāng)初插入時(shí)就有問(wèn)題的。
UNLOCK
TABLES;
4.7備份多個(gè)庫(kù)
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
-B
oldboy
mysql
--default-character-set=gbk
>
/server/bak/oldboy-gbk-muli.sql
提示:-B參數(shù)是關(guān)鍵,表示接多個(gè)庫(kù)。
※※※※※(生產(chǎn)環(huán)境常用)
-B,
--databases
To
dump
several
databases.
Note
the
difference
in
usage;
In
this
case
no
tables
are
given.
All
name
arguments
are
regarded
as
databasenames.
'USE
db_name;'
will
be
included
in
the
output.
參數(shù)說(shuō)明:該參數(shù)用于導(dǎo)出若干個(gè)數(shù)據(jù)庫(kù),在備份結(jié)果中會(huì)加入U(xiǎn)SE
db_name和CREATE
DATABASE
`db_name`;
-B后的參數(shù)都將被作為數(shù)據(jù)庫(kù)名。該參數(shù)比較常用。當(dāng)-B后的數(shù)據(jù)庫(kù)列全時(shí)
同
-A參數(shù)。請(qǐng)看-A的說(shuō)明。
4.8備份單個(gè)表
mysqldump
-u
用戶名
-p
數(shù)據(jù)庫(kù)名
表名>
備份的文件名
mysqldump
-u
root
-p
oldboy
test>
oldboy_oldboy.sql
執(zhí)行結(jié)果:
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
oldboy
test
--default-character-set=gbk
>
/server/bak/oldboy-gbk-single.sql
提示:無(wú)-B參數(shù),庫(kù)oldboy后面就是test表了。
4.9備份多個(gè)表
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
oldboy
test
ett
--default-character-set=gbk
>
/server/bak/oldboy-gbk-muti-tables.sql
[root@oldboy
~]#
egrep
-v
"\*|--|^$"
/server/bak/oldboy-gbk-muti-tables.sql
DROP
TABLE
IF
EXISTS
`test`;
CREATE
TABLE
`test`
(
`id`
int(4)
NOT
NULL
AUTO_INCREMENT,
`name`
char(20)
NOT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=MyISAM
AUTO_INCREMENT=12
DEFAULT
CHARSET=gbk;
LOCK
TABLES
`test`
WRITE;
INSERT
INTO
`test`
VALUES
(1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'yingsui'),(7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'老男孩'),(11,'我');
UNLOCK
TABLES;
DROP
TABLE
IF
EXISTS
`ett`;
CREATE
TABLE
`ett`
(
`id`
int(11)
DEFAULT
NULL
)
ENGINE=MyISAM
DEFAULT
CHARSET=gbk;
LOCK
TABLES
`ett`
WRITE;
UNLOCK
TABLES;
4.10備份數(shù)據(jù)庫(kù)結(jié)構(gòu)(不包含數(shù)據(jù))
mysqldump
-uroot
-d
-p'oldboy'
oldboy
oldboy>
oldboy_oldboy.sql
-d
只備份表結(jié)構(gòu)
[root@oldboy
~]#
mysqldump
-uroot
-p'oldboy123'
-d
oldboy
>/tmp/desc.sql
[root@oldboy
~]#
egrep
-v
"\*|--|^$"
/tmp/desc.sql
DROP
TABLE
IF
EXISTS
`ett`;
CREATE
TABLE
`ett`
(
`id`
int(11)
DEFAULT
NULL
)
ENGINE=MyISAM
DEFAULT
CHARSET=gbk;
DROP
TABLE
IF
EXISTS
`test`;
CREATE
TABLE
`test`
(
`id`
int(4)
NOT
NULL
AUTO_INCREMENT,
`name`
char(20)
NOT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=MyISAM
AUTO_INCREMENT=12
DEFAULT
CHARSET=gbk;
更多用法可以
執(zhí)行
mysqldump
–help
查詢。有關(guān)mysql和mysqldump同學(xué)們要詳細(xì)總結(jié)。
5恢復(fù)數(shù)據(jù)庫(kù)
5.1
source命令恢復(fù)
進(jìn)入mysql數(shù)據(jù)庫(kù)控制臺(tái),mysql
-u
root
-p
mysql>use
數(shù)據(jù)庫(kù)
然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)
mysql>source
oldboy_db.sql
#這個(gè)文件是系統(tǒng)路徑。
[root@oldboy
bak]#
mysql
-uroot
-p'oldboy123'
Welcome
to
the
MySQL
monitor.
Commands
end
with
;
or
\g.
...skip...
Type
'help;'
or
'\h'
for
help.
Type
'\c'
to
clear
the
current
input
statement.
mysql>
use
oldboy
Database
changed
mysql>
show
tables;
+------------------+
|
Tables_in_oldboy
|
+------------------+
|
ett
|
|
test
|
+------------------+
2
rows
in
set
(0.00
sec)
mysql>
drop
tables
test;
Query
OK,
0
rows
affected
(0.01
sec)
mysql>
system
ls
.
oldboy-gbk-muli.sql
oldboy-gbk-single.sql
oldboy.sql
oldboy-gbk-muti-tables.sql
oldboy-gbk.sql
oldboy.sql.gz
mysql>
source
./oldboy.sql
<==還是用第一版沒(méi)加字符集的備份,就是備份后查看亂碼的備份。
Query
OK,
0
rows
affected
(0.00
sec)
...skip...
Query
OK,
0
rows
affected
(0.00
sec)
Q...skip...
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
select
*
from
test;
+----+-------------+
|
id
|
name
|
+----+-------------+
|
1
|
zhaoyue
|
|
2
|
jesse
|
|
4
|
elain
||
5
|
wodi
|
|
6
|
yingsui
|
|
7
|
zhangyang
|
|
8
|
zaixiangpan
|
|
9
|
??????
|
|
10
|
???
|<==亂碼
|
11
|
?
|
+----+-------------+
10
rows
in
set
(0.00
sec)
mysql>
set
names
gbk;
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
select
*
from
test;
+----+-------------+
|
id
|
name
|
+----+-------------+
|
1
|
zhaoyue
|
|
2
|
jesse
|
|
4
|
elain
|
|
5
|
wodi
|
|
6
|
yingsui
|
|
7
|
zhangyang
|
|
8
|
zaixiangpan
|
|
9
|
??????
|
|
10
|
老男孩
|
<==仍然是正常的,就是說(shuō)備份不加字符集導(dǎo)出,將來(lái)恢復(fù)不會(huì)影響恢復(fù)的數(shù)據(jù),但是備份后查看文件會(huì)亂碼。
|
11
|
我
|
+----+-------------+
10
rows
in
set
(0.00
sec)
5.2
mysql命令恢復(fù)(標(biāo)準(zhǔn))
mysql
-u
oldboy
-p'oldboy'
oldboy
<
oldboy.sql
mysql>
system
mysql
-uroot
-p'oldboy123'
oldboy
<
oldboy-gbk.sql
<==導(dǎo)入的是備份時(shí)加字符集的版本。
mysql>
select
*
from
test;
+----+-------------+
|
id
|
name
|
+----+-------------+
|
1
|
zhaoyue
|
|
2
|
jesse
|
|
4
|
elain
|
|
5
|
wodi
|
|
6
|
yingsui
|
|
7
|
zhangyang
|
|
8
|
zaixiangpan
|
|
9
|
??????
|
|
10
|
老男孩
|<==因?yàn)樯衔膕ource導(dǎo)入時(shí)已經(jīng)set
names
gbk了,
所以此處不是亂碼。
|
11
|
我
|
+----+-------------+
10
rows
in
set
(0.00
sec)
MyISAM引擎?zhèn)浞?/p>
由于MyISAM引擎為表級(jí)鎖,因此,在備份時(shí)需要防止在備份期間數(shù)據(jù)寫(xiě)入而導(dǎo)致不一致,所以,在備份時(shí)使用--lock-all-tables加上讀鎖
mysqldump
-A
-F
-B
--lock-all-tables
|gzip
>/data/backup/$(date
+%F).tar.gz
特別提示:有關(guān)MyISAM和InnoDB引擎的差別和在工作中如何選擇,在前面的文章已經(jīng)詳細(xì)講解過(guò)了,這里就不在講了。
InnoDB引擎?zhèn)浞?/p>
InnoDB引擎為行鎖,因此,備份時(shí)可以不對(duì)數(shù)據(jù)庫(kù)加鎖的操作,可以加選項(xiàng)--single-transaction進(jìn)行備份:mysqldump
-A
-F
-B
--single-transaction
|gzip
>/data/backup/$(date
+%F).tar.gz
特別注意:
1)--single-transaction僅適用于InnoDB引擎。
生產(chǎn)環(huán)境mysqldump備份命令
mysqldump
–u
root
–p
–S
/data/3306/mysql.sock
–default-character-set=gbk
–single-transaction
–F
–B
oldboy|gzip
>
/server/backup/mysql_$(date
+%F).sql.gz
:注
-F:刷新bin-log參數(shù),數(shù)據(jù)庫(kù)備份完以后,會(huì)刷新bin-log
增量備份:
更新bin-log:
mysqladmin
–uroot
–p
–S
/data/3306/mysql.sock
flush-logs
如生成mysql-bin.000004文件
把生成的最新mysql-bin.000004文件,CP到/var/backup/
把二進(jìn)制的日志生成
sql語(yǔ)句:
mysqlbinlog
mysql-bin.000004>bin04.sql
如果有多個(gè)庫(kù),我們應(yīng)該用-d來(lái)指定恢復(fù)單個(gè)庫(kù)
mysqlbinlog
mysql-bin.000004
–d
oldboy
>binlog.sql
(當(dāng)然對(duì)于庫(kù)也要分庫(kù)備,否則恢復(fù)還是麻煩)
還原數(shù)據(jù):先還原全備,再還原增備
先還原全備:mysql
–u
root
–p
<mysqlfile.sql
還原增備:mysql
–u
root
–p
<binlog.sql(恢復(fù)增備的時(shí)候,需要把誤操作的語(yǔ)句刪掉后,再還原,否則,還原后,還是會(huì)和誤操作后一樣)
基于時(shí)間點(diǎn)的增量恢復(fù)
mysqlbinlog
mysql-bin.000004
–start-datetime=’2011-03-19
02:58:54’—stop-datetime=’2011-03-19
03:22:44’
–r
time.sql
上面語(yǔ)句將顯示2011.03-19
02:58:54-----2011-03-19
03:22:44時(shí)間段的binlog,并輸出到time.sql拽定開(kāi)始時(shí)間到文件結(jié)束
mysqlbinlog
mysql-bin.000004
–start-datetime=’
2011-03-19
02:58:54’
–d
oldboy
–r
time.sql
這個(gè)語(yǔ)句只有開(kāi)始時(shí)間,那么就是從2011-03-19
02:58:54時(shí)刻到日志結(jié)尾,lodboy數(shù)據(jù)庫(kù)的binlog輸出到time.sql
基于位置點(diǎn)的增量恢復(fù)
指定開(kāi)始位置和結(jié)束位置
mysqlbinlog
mysql-bin.000004
–start-position=510
–stop-position=1312
–r
pos.sql
輸出初始位置510,結(jié)束位置1312的所有binlog日志到pos.sql
注意:結(jié)尾的日志點(diǎn)細(xì)弱特殊不會(huì)被包含。即輸出1312pos以前的binlog。
指定開(kāi)始位置到文件結(jié)束
mysqlbinlog
mysql-bin.000004
–start-position=510
–r
pos510-end.sql
輸出初始位置510,結(jié)束位置到文件結(jié)尾的所有binlog到pos510-end.sql。當(dāng)然,你也可以指定庫(kù)名輸出binlog。如:
mysqlbinlog
mysql-bin.000004
--start-position=510
–r
pos510-end-oldboy.sql
–d
oldboy
從文件開(kāi)頭到指定結(jié)束位置
mysqlbinlog
mysql-bin.000004
--stop-position=954
-r
start-954.sql
輸出從文件開(kāi)始位置,到954位置截止的所有binlog掌握和查找打開(kāi)的文件
lsof(列出打開(kāi)的文件)實(shí)用程序會(huì)顯示打開(kāi)的文件名。其選項(xiàng)僅顯示某些進(jìn)程,只有一個(gè)進(jìn)程的某些文件描述符,或只有某些網(wǎng)絡(luò)連接(網(wǎng)絡(luò)連接使用文件描述符,就像普通文件一樣,lsof
也顯示這些)。使用
ps
–
ef
確定了可疑進(jìn)程后,輸入以下命令:
#
lsof
-s
-p
pid服務(wù)器最大設(shè)置的連接數(shù):151
mysql>
show
variables
like'max_connections';
+-----------------+-------+
|
Variable_name
|
Value
|
+-----------------+-------+
|
max_connections
|
151
|
+-----------------+-------+
1
row
in
set
(0.00
sec)
服務(wù)器響應(yīng)的最大連接數(shù):152
mysql>
show
global
status
like
'Max_used_connections';
+----------------------+-------+
|
Variable_name
|
Value
|
+----------------------+-------+
|
Max_used_connections
|
152
|
+----------------------+-------+
1
row
in
set
(0.00
sec)
查看服務(wù)器key_buffer_size數(shù)值:402653184
mysql>
show
variables
like
'key_buffer_size';
+-----------------+-----------+
|
Variable_name
|
Value
|
+-----------------+-----------+
|
key_buffer_size
|
402653184
|
+-----------------+-----------+1
row
in
set
(0.00
sec)
查看服務(wù)器現(xiàn)在使用的key_buffer_size使用情況:
key_read_requests:
879600044
key-reads:
830525
mysql>
show
global
status
like
'key_read%';
+-------------------+-----------+
|
Variable_name
|
Value
|
+-------------------+-----------+
|
Key_read_requests
|
879600044
|
|
Key_reads
|
830525
|
+-------------------+-----------+
2
rows
in
set
(0.00
sec)
計(jì)算索引未命中的概率:
key_cache_miss_rate
=
key_reads
/
key_read_requests
*
100%
達(dá)到0.1%以下(即每1000個(gè)請(qǐng)求有一個(gè)直接讀硬盤(pán))以下都很好,如果key_cache_miss_rae在0.01%以下的話,則說(shuō)明key_buffer_size分配得過(guò)多,可以適當(dāng)減少。
Key_blocks_unused表示未使用的緩存簇?cái)?shù),Key_blocks_used表示曾經(jīng)用到的最大的blocks數(shù),比如這臺(tái)服務(wù)器,所有的緩存都用到了,要么增加key_buffer_size,要么就是過(guò)度索引,把緩存占滿了。比較理想的設(shè)置是:
key_blocks_used
/
(
key_blocks_unused
+
key_blocks_used
)
*
100
%
=
80%
mysql>
show
global
status
like
'key_blocks_u%';
+-------------------+--------+
|
Variable_name
|
Value
|
+-------------------+--------+
|
Key_blocks_unused
|
317003
|
|
Key_blocks_used
|
6439
|
+-------------------+--------+
2
rows
in
set
(0.00
sec)
臨時(shí)表:
當(dāng)執(zhí)行語(yǔ)句時(shí),關(guān)于已經(jīng)被創(chuàng)造了的隱含臨時(shí)表的數(shù)量,我們可以用如下命令查詢其具體情況:
mysql>
show
global
status
like
'created_tmp%';
+-------------------------+--------+
|
Variable_name
|
Value
|
+-------------------------+--------+
|
Created_tmp_disk_tables
|
343326
|
|
Created_tmp_files
|
172
||
Created_tmp_tables
|
675795
|
+-------------------------+--------+
3
rows
in
set
(0.00
sec)
每次創(chuàng)建臨時(shí)表時(shí),created_tmp_tables都會(huì)增加,如果是在磁盤(pán)上創(chuàng)建臨時(shí)表,created_tmp_disk_tables也會(huì)增加。created_tem_files表示MYSQL服務(wù)創(chuàng)建的臨時(shí)文件數(shù),比較理想的配置是:
Created_Tmp_disk_tables
/
Created_tmp_tables
*
100%
<=
25%
比如上面服務(wù)器Created_Tmp_disk_tables
/
Created_tmp_tables
*
100%
=
50%,比較差了。
我們?cè)倏匆幌翸YSQL服務(wù)器對(duì)臨時(shí)表的配置:
mysql>
show
variables
where
Variable_name
in
('tmp_table_size','max_heap_table_size');
+---------------------+----------+
|
Variable_name
|
Value
|
+---------------------+----------+
|
max_heap_table_size
|
16777216
|
|
tmp_table_size
|
16777216
|
+---------------------+----------+
2
rows
in
set
(0.00
sec)
只有16M以下的臨時(shí)表才能全部放在內(nèi)存中,超過(guò)的就會(huì)用到硬盤(pán)臨時(shí)表。
打開(kāi)表的情況
Open_tables表示打開(kāi)表的數(shù)量,Opend_tables表示打開(kāi)過(guò)的表數(shù)量,我們可以用如下命令查看其具體情況:
mysql>
show
global
status
like
'open%tables%';
+---------------+--------+
|
Variable_name
|
Value
|
+---------------+--------+
|
Open_tables
|
512
|
|
Opened_tables
|
234200
|
+---------------+--------+
2
rows
in
set
(0.00
sec)
如果Opened_tables數(shù)量過(guò)大,說(shuō)明配置中tables_caceh(MYSQL
5.1.3
之后這個(gè)值叫做table_open_cache)的值可能太小。我們查詢一下服務(wù)器table_cache值:
mysql>
show
variables
like
'table_open_cache';
+------------------+-------+
|
Variable_name
|
Value
|
+------------------+-------+
|
table_open_cache
|
614
|
+------------------+-------+
1
row
in
set
(0.00
sec)比較合適的值為:
Open_tables
/
Opened_tables
*
100%
>=
85%
Open_tables
/
table_open_cache
*
100%
<=
95%
進(jìn)程使用情況
如果我們?cè)贛YSQL服務(wù)器的配置文件中設(shè)置了thread-cache_size,當(dāng)客戶端斷開(kāi)之時(shí),服務(wù)器處理此客戶請(qǐng)求的線程將會(huì)緩存起來(lái)以響應(yīng)下一個(gè)客戶而不是銷(xiāo)毀(前提是緩存數(shù)未達(dá)上限)。Threads_created表示創(chuàng)建過(guò)的線程數(shù),我們可以用如下命令查看:
mysql>
show
global
status
like
'Thread%';
+-------------------+-------+
|
Variable_name
|
Value
|
+-------------------+-------+
|
Threads_cached
|
7
|
|
Threads_connected
|
2
|
|
Threads_created
|
2124
|
|
Threads_running
|
2
|
+-------------------+-------+
4
rows
in
set
(0.00
sec)
如果發(fā)現(xiàn)Threads_created的值過(guò)大的話,表明MYSQL服務(wù)器一直在創(chuàng)建線程,這也是比較耗費(fèi)資源的,可以適當(dāng)增大配置文件中的thread_cache_size的值。查詢服務(wù)器thread_cahce_size配置,如下所示:
mysql>
show
variables
like
'thread_cache_size';
+-------------------+-------+
|
Variable_name
|
Value
|
+-------------------+-------+
|
thread_cache_size
|
8
|
+-------------------+-------+
1
row
in
set
(0.00
sec)
查詢緩存
它涉及的主要有兩個(gè)參數(shù),query_cache_size是設(shè)置MYSQL的Query_Cache大小,query_cache_size是設(shè)置使用查詢緩存的類(lèi)型,我們可以用如下命令查看其具體情況:
mysql>
show
global
status
like
'qcache%';
+-------------------------+----------+
|
Variable_name
|
Value
|
+-------------------------+----------+
|
Qcache_free_blocks
|
130
|
|
Qcache_free_memory
|
31557680
|
|
Qcache_hits
|
15838885
|
|
Qcache_inserts
|
2391041
|
|
Qcache_lowmem_prunes
|
0
|
|
Qcache_not_cached
|
671718
|
|
Qcache_queries_in_cache
|
676
|
|
Qcache_total_blocks
|
1798
|
+-------------------------+----------+
8
rows
in
set
(0.00
sec)
我們?cè)俨樵円幌路?wù)器上關(guān)于query-cache的配置命令如下:
mysql>
show
variables
like
'query_cache%';
+------------------------------+----------+
|
Variable_name
|
Value
|
+------------------------------+----------+
|
query_cache_limit
|
1048576
|
|
query_cache_min_res_unit
|
4096
|
|
query_cache_size
|
33554432
|
|
query_cache_type
|
ON
|
|
query_cache_wlock_invalidate
|
OFF
|
+------------------------------+----------+
5
rows
in
set
(0.00
sec)
排序使用情況
它表示系統(tǒng)中對(duì)數(shù)據(jù)進(jìn)行排序時(shí)所使用的Buffer,我們可以用如下命令查看:
mysql>
show
global
status
like
'sort%';
+-------------------+-----------+
|
Variable_name
|
Value
|
+-------------------+-----------+
|
Sort_merge_passes
|
84
|
|
Sort_range
|
393425
|
|
Sort_rows
|
751581502
|
|
Sort_scan
|
324383
|
+-------------------+-----------+
4
rows
in
set
(0.00
sec)
Sort_merge_passes包括如下步驟:MYSQL首先會(huì)嘗試在內(nèi)存中做排序,使用的內(nèi)存大小由系統(tǒng)變量sort_buffer_size來(lái)決定,如果它不夠大則把所有的記錄都讀到內(nèi)存中,而MYSQl則會(huì)把每次在內(nèi)存中排序的結(jié)果存到臨時(shí)文件中,等
MYSQL找到所有記錄之后,再把臨時(shí)文件中的記錄做一次排序。這次再排序就會(huì)增加sort_merge_passes。實(shí)際上,MYSQL會(huì)用另一個(gè)臨時(shí)文件來(lái)存儲(chǔ)再次排序的結(jié)果,所以我們通常會(huì)看到sort_merge_passes增加的數(shù)值是建臨時(shí)文件數(shù)的兩倍。因?yàn)橛玫搅伺R時(shí)文件,所以速度可能會(huì)比較慢,增大sort_buffer_size會(huì)減少sort_merge_passes和創(chuàng)建臨時(shí)文件的次數(shù),但盲目地增加sort_buffer_size并不一定能提高速度。
文件打開(kāi)數(shù)(open_files)
我們?cè)谔幚鞰YSQL故障時(shí),發(fā)現(xiàn)當(dāng)open_files大于open_files_limit值時(shí),MYSQL數(shù)據(jù)庫(kù)就會(huì)發(fā)生卡住的現(xiàn)象,導(dǎo)致APACHE服務(wù)器打不開(kāi)相應(yīng)頁(yè)面。這個(gè)問(wèn)題大家在工作中應(yīng)注意,我們可以用如下命令查看其具體情況:
mysql
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 有機(jī)化學(xué)的前沿技術(shù)試題及答案
- 新能源汽車(chē)的用戶體驗(yàn)提升方案測(cè)試題及答案
- 理清聲部與和聲的相互配置2025年樂(lè)理考試試題及答案
- 如何科學(xué)設(shè)計(jì)創(chuàng)業(yè)扶持政策試題及答案
- 護(hù)士面試題綱及答案
- 小學(xué)教育教學(xué)反思的評(píng)估標(biāo)準(zhǔn)試題及答案
- 數(shù)學(xué)小達(dá)人試題及答案推出
- 無(wú)機(jī)化學(xué)基本概念測(cè)試試題及答案
- 空間功能劃分與家具設(shè)計(jì)整合策略及試題及答案
- 電動(dòng)汽車(chē)結(jié)構(gòu)設(shè)計(jì)考題試題及答案
- 2024年江西省氣象部門(mén)招聘考試真題
- 2025-2030中國(guó)生物計(jì)算市場(chǎng)研發(fā)創(chuàng)新及發(fā)展前景趨勢(shì)預(yù)測(cè)研究報(bào)告
- (二模)2025年深圳市高三年級(jí)第二次調(diào)研考試歷史試卷(含標(biāo)準(zhǔn)答案)
- 曳引式電梯知識(shí)培訓(xùn)課件
- 貴港輔警考試題庫(kù)2024
- 2023年江蘇泰州市第四人民醫(yī)院招考聘用高層次人才11人模擬備考試卷(共1000題含答案解析)
- 工會(huì)換屆選舉請(qǐng)示樣式
- 七年級(jí)音樂(lè)上冊(cè) 《青少年管弦樂(lè)隊(duì)指南》教學(xué)課件
- GB/T 22465-2008紅花籽油
- GB/T 18705-2002裝飾用焊接不銹鋼管
- 巴菲特三大經(jīng)典演講之二-1998年佛羅里達(dá)大學(xué)商學(xué)院演講
評(píng)論
0/150
提交評(píng)論