本文目錄一覽:
- 1、linux 下怎麼優化mysql佔用內存?
- 2、Linux系統下mysql運行慢,請給出分析方案!!
- 3、Linux下mysql讀寫速度為什麼很慢
- 4、linux服務器下mysql啟動慢,怎麼解決
- 5、連接linux系統mysql數據庫 connection time out
linux 下怎麼優化mysql佔用內存?
修改mysql配置文件,優化緩存大小和連接數連接方式,優化sql語句 ,記得mysql好像是有工具可以查看最佔用資源的sql語句,找到他,優化他。
安裝好mysql後,配製文件應該在/usr/local/mysql/share/mysql目錄中,配製文件有幾個,有my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf,不同的流量的網站和不同配製的服務器環境,當然需要有不同的配製文件了。
一般的情況下,my-medium.cnf這個配製文件就能滿足我們的大多需要;一般我們會把配置文件拷貝到/etc/my.cnf 只需要修改這個配置文件就可以了,使用mysqladmin variables extended-status _u root _p 可以看到目前的參數,有3個配置參數是最重要的,即key_buffer_size,query_cache_size,table_cache。
key_buffer_size只對MyISAM表起作用,
key_buffer_size指定索引緩衝區的大小,它決定索引處理的速度,尤其是索引讀的速度。一般我們設為16M,實際上稍微大一點的站點 這個數字是遠遠不夠的,通過檢查狀態值Key_read_requests和Key_reads,可以知道key_buffer_size設置是否合理。比例 key_reads / key_read_requests應該儘可能的低,至少是1:100,1:1000更好(上述狀態值可以使用SHOW STATUS LIKE 『key_read%』獲得)。 或者如果你裝了phpmyadmin 可以通過服務器運行狀態看到,筆者推薦用phpmyadmin管理mysql,以下的狀態值都是本人通過phpmyadmin獲得的實例分析:
這個服務器已經運行了20天
key_buffer_size _ 128M
key_read_requests _ 650759289
key_reads – 79112
比例接近1:8000 健康狀況非常好
Linux系統下mysql運行慢,請給出分析方案!!
Linux 進程通過 C 標準庫中的內存分配函數 malloc 向系統申請內存,但是到真正與內核交互之間,其實還隔了一層,即內存分配管理器(memory allocator)。常見的內存分配器包括:ptmalloc(Glibc)、tcmalloc(Google)、jemalloc(FreeBSD)。MySQL 默認使用的是 glibc 的 ptmalloc 作為內存分配器。
內存分配器採用的是內存池的管理方式,處在用戶程序層和內核層之間,它響應用戶的分配請求,向操作系統申請內存,然後將其返回給用戶程序。
為了保持高效的分配,分配器通常會預先向操作系統申請一塊內存,當用戶程序申請和釋放內存的時候,分配器會將這些內存管理起來,並通過一些算法策略來判斷是否將其返回給操作系統。這樣做的最大好處就是可以避免用戶程序頻繁的調用系統來進行內存分配,使用戶程序在內存使用上更加高效快捷。
關於 ptmalloc 的內存分配原理,個人也不是非常了解,這裡就不班門弄斧了,有興趣的同學可以去看下華庭的《glibc 內存管理 ptmalloc 源代碼分析》。
關於如何選擇這三種內存分配器,網上資料大多都是推薦摒棄 glibc 原生的 ptmalloc,而改用 jemalloc 或者 tcmalloc 作為默認分配器。因為 ptmalloc 的主要問題其實是內存浪費、內存碎片、以及加鎖導致的性能問題,而 jemalloc 與 tcmalloc 對於內存碎片、多線程處理優化的更好。
目前 jemalloc 應用於 Firefox、FaceBook 等,並且是 MariaDB、Redis、Tengine 默認推薦的內存分配器,而 tcmalloc 則應用於 WebKit、Chrome 等。
Linux下mysql讀寫速度為什麼很慢
怎麼可能,MySQL和Linux兼容性是最好的,可能是你的電腦配置太差,或者是你電腦上的Linux系統所佔的磁盤空間已滿,建議擴充一下磁盤空間
linux服務器下mysql啟動慢,怎麼解決
0 先了解主機和數據庫的環境
#主機
內存多大,為了看有多少剩餘能為mysql留出多少來:free
資源使用情況,看負載情況,重點看空閑 CPU百分比(帶 xx% id):top
#mysql
看mysql數據文件多大:du -c -s /var/lib/mysql
1 初步調整(最主要的)
# 配置mysql的innodb內存佔用,根據上邊結果中剩餘內存(取80%)增加 innodb_buffer_pool_size的值
# 配置mysql的其它內存使用和緩存使用情況,不要加的太大,主要是 sort_buffer_size, join_buffer_size, key_cache_size。
配置依據是:總內存 – OS系統預留 – max_connections * (sort_buffer_size + join_buffer_size + read_buffer_size + read_rnd_buffer_size + thread_statck ) – key_cache_size 0
2 優化調整(屬於優化性能方面)
主要是以下幾方面:
連接等待隊列數 back_log
客戶端請求線程緩存數 thread_cache_size
表緩衝的數量 table_open_cache
臨時表的內存大小,用於group by的優化 tmp_table_size
innodb日誌緩衝大小 innodb_log_buffer_size
innodb能打開表的數量大小(庫里的表特別多時增加此項值) innodb_open_files
連接linux系統mysql數據庫 connection time out
首先,糾正一下,mysql只是一個數據庫軟件,安裝在windows還是linux操作系統上,連接方法一致,下面介紹windows下如何連接mysql數據庫。一、本機mysql的連接方式:1.按快捷鍵win+R鍵來進入運行,並輸入cmd,點擊確定2.鍵入命令mysql-uroot-p,回車後提示你輸密碼.注意用戶名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼。3.如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql二、遠程mysql的連接方式假設遠程主機的IP為:111.111.111.111,用戶名為root,密碼為mysql123。則鍵入以下命令:mysql-h111.111.111.111-uroot-p;在提示符下輸入密碼mysql123,連接成功。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/286811.html