性能調優

1.1.1.? 調優原因

應用服務器: 暫時無瓶頸

mysql服務器

db出現嚴重的IO瓶頸,

調優前外部表現:

1.1.2.? 分析過程

系統調優由易到難的先后順序如下:

1.? ? ? ? 硬件問題

2.? ? ? ? 網絡問題

3.? ? ? ? 應用服務器、數據庫等配置問題

4.? ? ? ? 源代碼、數據庫腳本問題

5.? ? ? ? 系統構架問題

通過后他命令vmstat? 2

1 系統級IO監控

%util? ? ? ? 代表磁盤繁忙程度。100% 表示磁盤繁忙, 0%表示磁盤空閑。但是注意,磁盤繁忙不代表磁盤(帶寬)利用率高

argrq-sz? ? 提交給驅動層的IO請求大小,一般不小于4K,不大于max(readahead_kb, max_sectors_kb)

可用于判斷當前的IO模式,一般情況下,尤其是磁盤繁忙時, 越大代表順序,越小代表隨機

svctm? ? ? ? 一次IO請求的服務時間,對于單塊盤,完全隨機讀時,基本在7ms左右,既尋道+旋轉延遲時間

注: 各統計量之間關系

=======================================

%util = ( r/s? +? w/s) * svctm / 1000? ? ? ? ? ? ? ? ? ? ? ? # 隊列長度 =? 到達率? ? *? 平均服務時間

avgrq-sz = ( rMB/s + wMB/s) * 2048 / (r/s? + w/s)? ? # 2048 為 1M / 512

=======================================

總結:

iostat 統計的是通用塊層經過合并(rrqm/s, wrqm/s)后,直接向設備提交的IO數據,可以反映系統整體的IO狀況,但是有以下2個缺點:

1? 距離業務層比較遙遠,跟代碼中的write,read不對應(由于系統預讀 + pagecache + IO調度算法等因素, 也很難對應)

2? 是系統級,沒辦法精確到進程,比如只能告訴你現在磁盤很忙,但是沒辦法告訴你是誰在忙,在忙什么?

分析結果:

2 進程級IO監控

iotop 和 pidstat (僅rhel6u系列)

iotop? ? 顧名思義, io版的top

pidstat 顧名思義, 統計進程(pid)的stat,進程的stat自然包括進程的IO狀況

這兩個命令,都可以按進程統計IO狀況,因此可以回答你以下二個問題

當前系統哪些進程在占用IO,百分比是多少?

占用IO的進程是在讀?還是在寫?讀寫量是多少?

pidstat -u -r -d -t 1

3 業務級IO監控

? ? ioprofile

? ? ioprofile 命令本質上是 lsof + strace, 具體下載可見 http://code.google.com/p/maatkit/

? ? ioprofile 可以回答你以下三個問題:

? ? 1? 當前進程某時間內,在業務層面讀寫了哪些文件(read, write)?

? ? 2? 讀寫次數是多少?(read, write的調用次數)

? ? 3? 讀寫數據量多少?(read, write的byte數)

4 文件級IO監控

? ? 文件級IO監控可以配合/補充"業務級和進程級"IO分析

? ? ? 文件級IO分析,主要針對單個文件, 回答當前哪些進程正在對某個文件進行讀寫操作.

? ? ? 1 lsof? 或者? ls /proc/pid/fd

? ? ? 2 inodewatch.stp

lsof? 告訴你 當前文件由哪些進程打開

1.1.3.? 調優過程

1.db調優,針對目前MariaDB的參數修改調整,通過壓測調整 (2天)

修改前文件空

參數修改:

[root@host-172-19-1-27 my.cnf.d]# vim /etc/my.cnf.d/server.cnf

[server]

[mysqld]

slow_query_log = on? ? ? //慢sql開關打開

long_query_time = 1? ? ? //設定確認慢sql閾值

slow_query_log_file=/tmp/slow.log.last? ? ? //導出慢sql路徑

log_slow_verbosity=query_plan

symbolic-links=0

character_set_server=utf8

skip-name-resolve

back_log = 1500

max_connections = 2000

max_connect_errors = 6000

table_open_cache = 8000

max_allowed_packet = 1024M

binlog_cache_size = 1M

max_heap_table_size = 256M

tmp_table_size = 256M

innodb_checksums=0

innodb_use_native_aio=1

read_buffer_size = 8M

read_rnd_buffer_size = 8M

sort_buffer_size = 8M

join_buffer_size = 8M

key_buffer_size = 256M

thread_cache_size = 8

query_cache_size = 128M

query_cache_limit = 32M

ft_min_word_len = 4

log_bin = mysql-bin

relay-log=relay-log-bin

server-id=1

log-slave-updates=true

sync-master-info=1

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

report-port=3306

report-host=10.214.129.187

binlog_format = ROW

expire_logs_days = 7

log_error = mysql-error.log

skip-external-locking

default_storage_engine = InnoDB

innodb_flush_method=O_DIRECT

innodb_file_per_table = 1

innodb_open_files = 4000

innodb_buffer_pool_size = 12288M

innodb_thread_concurrency = 0

innodb_flush_log_at_trx_commit = 0

innodb_log_buffer_size = 64M

innodb_log_file_size = 1024M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

innodb_read_io_threads = 4

innodb_write_io_threads = 4

innodb_doublewrite=0

innodb_support_xa=0

bulk_insert_buffer_size = 64M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 1G

myisam_repair_threads = 1

interactive_timeout = 2880000

wait_timeout = 2880000

collation-server=utf8_general_ci

[galera]

[embedded]

[mariadb]

[mariadb-10.1]

//后面為原始值

#skip-external-locking

#key_buffer_size = 256M

#max_allowed_packet = 1M

#table_open_cache = 256

#sort_buffer_size = 1M

#read_buffer_size = 1M

#read_rnd_buffer_size = 4M

#myisam_sort_buffer_size = 64M

#thread_cache_size = 8

#query_cache_size= 16M

#log-bin=mysql-bin

#server-id=1

#binlog-format=ROW

#character-set-server=utf8

#collation-server=utf8_general_c

2.容器調優,針對目前tomcat的參數調整,通過壓測調整? (2天)

?

? ?

protocol="org.apache.coyote.http11.Http11NioProtocol"

connectionTimeout="20000"? //

redirectPort="9443"

2? ? ? ? ? ? ? maxThreads="4000"? ? ? //調整線程的數目

minSpareThreads="4000"

maxSpareThreads="4500"

acceptCount="4100"

1? ? ? ? ? ? ? enableLookups="false"? ? //停用DNS 查詢

debug="0"

/>

? ?

? ?

3.? ? ? //--配置引擎--

3.OS調優,確定os 相關性能參數調整(TCP limit ,文件頁大小) (1天)

4.硬件方面,根據具體情況調查online硬件參數,cpu多核親和性,IO硬件參數。 (1天)

app:

cpu: Intel Core Processor (Haswell, no TSX)? 8core

memory: 16g

disk: 65g

db:

cpu: Intel Core Processor (Haswell, no TSX) 8core

memory: 16g

disk: 65g

5.日志配置對系統性能影響 (0.5天)

1.1.4.? 調優結果

? ? ? ? ? ? ? ? ? ? ?

?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,732評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,214評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,781評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,588評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,315評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,699評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,698評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,882評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,441評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,189評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,388評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,933評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,613評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,023評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,310評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,112評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,334評論 2 377

推薦閱讀更多精彩內容