[20190313]備份問題.txt

lfree發表於2019-03-13

[20190313]備份問題.txt


--//生產系統遇到備份問題,同事請求檢檢視看,提示應該是ulimit引數限制.

--//首先我不熟悉這套備份系統,我心裡很反感這套備份模式,我開始以為修改/etc/security/limits.conf就ok了.


# grep -v "^#" /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft memlock  2457600

oracle hard memlock  2457600


--//發現還是不行,問了一些細節,發現透過root程式下的一個服務完成備份:

# ps -ef | grep avata[r]

root     23601     1  0  2018 ?        00:00:06 /usr/local/avatar/client_server/sbin/avatardevice -v -c /usr/local/avatar/client_server/etc/avatardevice.conf

root     23613     1  0  2018 ?        05:16:39 /usr/local/avatar/client_server/sbin/avatarclient -v -c /usr/local/avatar/client_server/etc/avatarclient.conf


--//而這兩個程式是root使用者的,這樣應該修改root使用者對於引數加入如下:

* soft nofile 65536

* hard nofile 65536


--//我在猜想為什麼該程式要開啟如此之多的檔案控制程式碼.


# ls -l /proc/23613/fd |wc

    591    4902   47629


--//昏,已經使用591個檔案控制程式碼.


# ls -l /proc/23613/fd  | cut -f2 -d ">" | sort | uniq -c

      3  /dev/null

      1  socket:[76605529]

      1 total 0

    292  /usr/local/avatar/client_server/data

    292  /usr/local/avatar/client_server/data/ora_scripts

      1  /usr/local/avatar/client_server/log

      1  /usr/local/avatar/client_server/log/avatarclient20181022.log


--//很明顯這家公司的產品寫的程式有問題,大量的重複開啟相同的檔案控制程式碼,!!估計每次備份開啟1次,292天就292次,並且完成後竟然不

--//寫關閉控制程式碼的語句,國內的水平就是這樣!!打著所謂的高科技騙人,

--//這樣再大的引數設定最終也會撐爆的,也許最佳的方式定時重啟這個服務.


# service avatarclient restart

Stopping the Avatar Client daemon

Stopping the Avatar Device daemon

Starting the Avatar Device daemon

Starting the Avatar Client daemon


# ps -ef | grep avata[r]

root      5414     1  0 15:53 ?        00:00:00 /usr/local/avatar/client_server/sbin/avatardevice -v -c /usr/local/avatar/client_server/etc/avatardevice.conf

root      5425     1  0 15:53 ?        00:00:00 /usr/local/avatar/client_server/sbin/avatarclient -v -c /usr/local/avatar/client_server/etc/avatarclient.conf


# ls -l /proc/5425/fd

total 0

lr-x------ 1 root root 64 2019-03-13 15:53:52 0 -> /dev/null

lr-x------ 1 root root 64 2019-03-13 15:53:52 1 -> /dev/null

lr-x------ 1 root root 64 2019-03-13 15:53:52 2 -> /dev/null

lrwx------ 1 root root 64 2019-03-13 15:53:52 3 -> socket:[86753325]

lr-x------ 1 root root 64 2019-03-13 15:53:52 4 -> /usr/local/avatar/client_server/log

lrwx------ 1 root root 64 2019-03-13 15:53:52 5 -> /usr/local/avatar/client_server/log/avatarclient20190313.log

--//現在沒有前面看到的2個檔案控制程式碼.


# cat /proc/5425/limits

Limit                     Soft Limit           Hard Limit           Units

Max cpu time              unlimited            unlimited            seconds

Max file size             unlimited            unlimited            bytes

Max data size             unlimited            unlimited            bytes

Max stack size            10485760             unlimited            bytes

Max core file size        0                    unlimited            bytes

Max resident set          unlimited            unlimited            bytes

Max processes             1024                 30148                processes

Max open files            1024                 1024                 files

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Max locked memory         65536                65536                bytes

Max address space         unlimited            unlimited            bytes

Max file locks            unlimited            unlimited            locks

Max pending signals       30148                30148                signals

Max msgqueue size         819200               819200               bytes

Max nice priority         0                    0

Max realtime priority     0                    0

Max realtime timeout      unlimited            unlimited            us


--//注:可以發現我這樣操作不行,必須登出root使用者然後再重新啟動服務才生效.以下是退出重啟後的情況:

 ps -ef | grep avata[r]

root      5905     1  0 16:00 ?        00:00:00 /usr/local/avatar/client_server/sbin/avatardevice -v -c /usr/local/avatar/client_server/etc/avatardevice.conf

root      5916     1  0 16:00 ?        00:00:00 /usr/local/avatar/client_server/sbin/avatarclient -v -c /usr/local/avatar/client_server/etc/avatarclient.conf


# cat /proc/5916/limits

Limit                     Soft Limit           Hard Limit           Units

Max cpu time              unlimited            unlimited            seconds

Max file size             unlimited            unlimited            bytes

Max data size             unlimited            unlimited            bytes

Max stack size            10485760             unlimited            bytes

Max core file size        0                    unlimited            bytes

Max resident set          unlimited            unlimited            bytes

Max processes             1024                 30148                processes

Max open files            65536                65536                files

Max locked memory         65536                65536                bytes

Max address space         unlimited            unlimited            bytes

Max file locks            unlimited            unlimited            locks

Max pending signals       30148                30148                signals

Max msgqueue size         819200               819200               bytes

Max nice priority         0                    0

Max realtime priority     0                    0

Max realtime timeout      unlimited            unlimited            us


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2638279/,如需轉載,請註明出處,否則將追究法律責任。

相關文章