我用C++編寫了一個小型geoip查找linux守護進程,我得到兩個不同的結果,我想知道爲什麼。爲什麼同一臺服務器的兩個版本的行爲不同?
這是源代碼:https://github.com/homer6/geoipd 我檢查了valgrind的內存泄漏,並沒有任何。
我有兩臺Web服務器,它們都在Amazon EC2上運行相同的Ubuntu映像,並且都在負載均衡器後面,確保它們每個都獲得大致相同的流量。我在兩臺服務器上都安裝了守護進程,現在我已經讓它們在生產環境中運行了幾天。
一切都按預期工作,但「ps aux」的輸出在兩個實例中略有不同。
服務器1:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME
1004 28889 0.0 6.7 640288 517692 ? Ss Nov09 0:03
服務器2:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME
1004 16587 0.0 6.7 574752 517688 ? Ss Nov09 0:02
我的問題是兩個分開:
- 爲什麼會出現虛擬內存使用這麼大的差別?
- 爲什麼常駐記憶體使用有差異?
在此先感謝...
更新: 記得檢查VM大小當我第一次啓動的進程。他們都在574752(或略低於575 MB),他們都有相同的價值。
你的'ulimit'或'/ etc/security/limits.conf'在兩個系統之間是不同的嗎? – chown
在Ubuntu上,沒有這樣的目錄。由於它們是相同圖像的克隆,所以它們應該是相同的。我運行了「cat/proc/sys/fs/file-max」,它們都具有相同的值。這是一回事嗎? – Homer6
ulimit – Homer6