2020年6月10日 星期三

Redis設定maxclients產生maximum open files錯誤的問題

12214:M 10 Jun 20:48:01.544 # You requested maxclients of 50000 requiring at least 50032 max file descriptors.
  3 12214:M 10 Jun 20:48:01.544 # Server can't set maximum open files to 50032 because of OS error: Operation not permitted.
  4 12214:M 10 Jun 20:48:01.544 # Current maximum open files is 10240. maxclients has been reduced to 10208 to compensate for low ulimit.     If you need higher maxclients increase 'ulimit -n'.

這問題真的是很瞎

因為已設定/etc/security/limits.conf無用

2020年5月24日 星期日

如何擴充Vmware虛擬機的硬碟空間

使用LVM管理很方便,但要擴充VM的步驟還是不少,特此記錄一下

原本VM是給6G,根目錄空間只有3.4G,拿來測試SQL Server on Linux不太夠



2019年9月22日 星期日

[MySQL]Unknown collation: 'utf8mb4_0900_ai_ci'

        最近測試MySQL Utilities遇到下列錯誤
mysql.connector.errors.DatabaseError: 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'




        看到utf8mb4_0900_ai_ci這個就知道是MySQL 8.0.17以後才會出現的charsets,而我用的是MySQL 5.7的,所以出現這錯誤是正常的

2019年9月19日 星期四

用yum provides來尋找遺失的文件

      有時安裝套件時,會出現Failed dependencies之類的錯誤,或是提示遺失依賴的文件,像下面這類的

perl-DBD-MySQL-4.023-6.el7.x86_64 has missing requires of libmysqlclient.so.18()(64bit)

通常我們會去Google看看別人裝了什麼套件來解

最近看到有人用yum來解的

2018年1月14日 星期日

[MySQL][ERROR] Could not use /var/log/mysql-slow-queries.log for logging (error 13)

        因為Zabbix最近有效能的問題,監控數千台有時會整個斷圖,想搞清出到底是Server不夠力還是DB本身不夠力,但是斷圖什監控項資料都沒了,都無法釐清當時狀況,很尷尬,所以另外裝了Percona Monitoring and Management (PMM)來監控Zabbix Server跟DB,PMM安裝可用docker實現無腦安裝很簡單,但設定上有些麻煩目前還搞不定,其中有項功能就是會自動幫你rotate slow log,但我發現只會幫你mv,不會幫你touch,意思就是更名後就沒有slow log,那就不會紀錄slow query囉,這就不易debug

        當slow log不存在時,touch一下,chown後,進mysql再flush slow logs,通常slow query就會正常紀錄了
touch /var/log/slow.log
chown mysql.mysql /var/log/slow.log
flush slow logs

        但這次竟然失敗,slow log依然是空的,我反覆試了幾次都如此,Error log有告知解法是要你重啟mysql,有沒有搞錯啊?DB是能隨便重啟的嗎?


2017年10月11日 星期三

[MySQL]預設innodb_log_file_size太小,對IO影響有多大呢?

       基本上innodb_log_file_size我從沒用過預設值,一般來說都要求要能夠撐住1小時的寫入量,同事管的一台MySQL有效能上的問題,請我幫忙看,iostat看了一下還滿忙的,IOPS在1000~3000左右,IO吞吐量介於25MB~80MB,幾乎全是寫IO為主,以SAS 15000轉RAID 10來說算忙碌的,但看起來IO還不至於撐不住,看了一下MySQL內讀寫比為8:2,比對OS的顯得不太合理,寫IO怎麼會那麼重,再看一下設定,innodb_log_file_size居然用預設值,只有5MB,2個也不過10M,算了一下適當的大小應該要1.4G,10M對1.4G這也差太多了,log file豈不是一直被替換,寫IO這麼忙應該是這個問題,請同事找時間先改成1G看看,那改了之後IO差多少呢?

       下圖是PMM的監控項,時間範圍涵蓋更改innodb_log_file_size的前後時間段,看中間的兩個圖分別是IO吞吐量跟IOPS,更改innodb_log_file_size後的數據讓我嚇了一跳,同樣的QPS下,IO變得一點都不忙碌了,也差太多


       那如何計算innodb_log_file_size的大小呢?可參考Calc_innodb_log_file_size.sh

2017年9月25日 星期一

[MySQL]初始化資料庫後,竟無法啟動,Error Log無錯誤訊息紀錄

      測試Percona 5.7.19-17,原本就已搭好Master了,就在Slave上安裝完Server後,準備初始化資料庫,我直接把Master的my.cnf拿來用,初始化資料庫成功,自定義的Error Log目錄下有產生對應的mysql_error.log,預設的Error Log路徑下沒有,到這裡一如往常沒有問題

      但接下來MySQL竟然啟動FAILED,怪的是mysql_error.log竟然沒有錯誤訊息,難道錯誤寫到預設Error Log下,一看還真的產生了一個,不過是空的,如下圖