memori teratas digunakan dan persen tidak cocok

1

Saya memiliki server ec2 dan kadang-kadang saya memiliki masalah memori - saya mengalami proses mysql terbunuh karena kehabisan memori. Ini memecah situs web dan permainan saya dan kadang-kadang saya butuh waktu berjam-jam atau berhari-hari untuk memperhatikan :(. Saat ini saya memiliki lampu, wordpress, dan mmorpg java saya berjalan di server. Saya tahu server mmorpg saya membutuhkan sedikit RAM untuk menampung semua entitas dan data.

saya sudah RAM 1 GB dan 1 GB swap . Ini adalah top output saya saat ini.

top output

Yang tidak saya mengerti adalah mengapa jika saya proses java adalah 7,6% dan saat ini saya mysqld adalah 1.9% bagaimana saya bahkan dekat? Ia mengatakan Mem 956MB digunakan dan Swap 378MB digunakan - angka-angka itu tampak nyata. Bagaimana itu bahkan mendekati 7,6 + 1,9%?

Apakah ada beberapa cara saya dapat memonitor memori saya sedikit lebih baik atau sesuatu yang dapat saya konfigurasi di mysql, sehingga tidak menjalankan OOM? Saya cukup yakin tidak ada kebocoran dalam kode server java saya - tetapi tidak 100% yakin.

Maaf untuk semua pertanyaan - setelah mengkode mmorpg saya dari awal selama lebih dari 5 tahun sekarang saya ingin memastikan server saya siap menangani playerbase yang layak.

EDIT diminta dalam komentar

bebas keluaran

             total       used       free     shared    buffers     cached
Mem:       1019336     937316      82020        344       8920      45120
-/+ buffers/cache:     883276     136060
Swap:      1048572     417708     630864

ps aux keluaran

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19644     0 ?        Ss   Aug14   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Aug14   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Aug14   0:08 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S    Aug14   0:00 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S<   Aug14   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Aug14   1:51 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    Aug14   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Aug14   0:00 [migration/0]
root        10  0.0  0.0      0     0 ?        S    Aug14   0:00 [kdevtmpfs]
root        11  0.0  0.0      0     0 ?        S<   Aug14   0:00 [netns]
root        12  0.0  0.0      0     0 ?        S<   Aug14   0:00 [perf]
root        15  0.0  0.0      0     0 ?        S    Aug14   0:00 [xenwatch]
root        20  0.0  0.0      0     0 ?        S    Aug14   0:00 [xenbus]
root        21  0.0  0.0      0     0 ?        S    Aug14   0:19 [kworker/0:1]
root       128  0.0  0.0      0     0 ?        S    Aug14   0:00 [khungtaskd]
root       129  0.0  0.0      0     0 ?        S<   Aug14   0:00 [writeback]
root       131  0.0  0.0      0     0 ?        SN   Aug14   0:00 [ksmd]
root       132  0.0  0.0      0     0 ?        SN   Aug14   0:00 [khugepaged]
root       133  0.0  0.0      0     0 ?        S<   Aug14   0:00 [crypto]
root       134  0.0  0.0      0     0 ?        S<   Aug14   0:00 [kintegrityd]
root       135  0.0  0.0      0     0 ?        S<   Aug14   0:00 [bioset]
root       137  0.0  0.0      0     0 ?        S<   Aug14   0:00 [kblockd]
root       488  0.0  0.0      0     0 ?        S<   Aug14   0:00 [md]
root       616  0.0  0.0      0     0 ?        S    Aug14   0:46 [kswapd0]
root       617  0.0  0.0      0     0 ?        S<   Aug14   0:00 [vmstat]
root       689  0.0  0.0      0     0 ?        S    Aug14   0:00 [fsnotify_mark]
root       708  0.0  0.0      0     0 ?        S<   Aug14   0:00 [kthrotld]
root       748  0.0  0.0      0     0 ?        S<   Aug14   0:00 [bioset]
root       752  0.0  0.0      0     0 ?        S<   Aug14   0:00 [deferwq]
root      1374  0.0  0.0      0     0 ?        S<   Aug14   0:00 [ata_sff]
root      1387  0.0  0.0      0     0 ?        S    Aug14   0:00 [scsi_eh_0]
root      1396  0.0  0.0      0     0 ?        S<   Aug14   0:00 [scsi_tmf_0]
root      1399  0.0  0.0      0     0 ?        S    Aug14   0:00 [scsi_eh_1]
root      1412  0.0  0.0      0     0 ?        S<   Aug14   0:00 [scsi_tmf_1]
root      1470  0.0  0.0      0     0 ?        S    Aug14   0:34 [jbd2/xvda1-8]
root      1471  0.0  0.0      0     0 ?        S<   Aug14   0:00 [ext4-rsv-conver]
root      1499  0.0  0.0      0     0 ?        S<   Aug14   0:00 [kworker/0:1H]
root      1517  0.0  0.0  11424    28 ?        Ss   Aug14   0:00 /sbin/udevd -d
root      1590  0.0  0.0      0     0 ?        S<   Aug14   0:00 [kpsmoused]
root      1641  0.0  0.0  11312    32 ?        S    Aug14   0:00 /sbin/udevd -d
root      1827  0.0  0.0      0     0 ?        S    Aug14   0:00 [kauditd]
root      1882  0.0  0.0      0     0 ?        S<   Aug14   0:00 [ipv6_addrconf]
root      2035  0.0  0.0   9360   628 ?        Ss   Aug14   0:00 /sbin/dhclient -q -lf /var/lib/dhclient/dhclient-eth0.leases -pf /var/run/dhclient-eth0.pid eth0
root      2087  0.0  0.0  46536    36 ?        S<sl Aug14   0:00 auditd
root      2108  0.0  0.0 247464     0 ?        Sl   Aug14   0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
dbus      2137  0.0  0.0  21792     4 ?        Ss   Aug14   0:00 dbus-daemon --system
root      2266  0.0  0.0  77840   780 ?        Ss   Aug14   0:00 /usr/sbin/sshd
root      2327  0.0  0.0 115344    28 ?        S    Aug14   0:00 /bin/sh /usr/libexec/mysql55/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     2536  0.6  1.3 886436 13936 ?        Sl   Aug14  83:28 /usr/libexec/mysql55/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root      2585  0.0  0.0  88992   552 ?        Ss   Aug14   0:18 sendmail: accepting connections
smmsp     2594  0.0  0.0  80440   400 ?        Ss   Aug14   0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root      2605  0.0  0.1 431276  1284 ?        Ss   Aug14   0:23 /usr/sbin/httpd
root      2616  0.0  0.0 119516   768 ?        Ss   Aug14   0:03 crond
root      2630  0.0  0.0  17068    88 ?        Ss   Aug14   0:00 /usr/sbin/atd
root      2653  0.0  0.0   4312    32 tty1     Ss+  Aug14   0:00 /sbin/mingetty /dev/tty1
root      2655  0.0  0.0   6460    32 ttyS0    Ss+  Aug14   0:00 /sbin/agetty ttyS0 9600 vt100-nav
root      2657  0.0  0.0   4312    32 tty2     Ss+  Aug14   0:00 /sbin/mingetty /dev/tty2
root      2660  0.0  0.0   4312    32 tty3     Ss+  Aug14   0:00 /sbin/mingetty /dev/tty3
root      2664  0.0  0.0   4312    32 tty4     Ss+  Aug14   0:00 /sbin/mingetty /dev/tty4
root      2666  0.0  0.0   4312    32 tty5     Ss+  Aug14   0:00 /sbin/mingetty /dev/tty5
root      2668  0.0  0.0  10876    32 ?        S    Aug14   0:00 /sbin/udevd -d
root      2669  0.0  0.0   4312    32 tty6     Ss+  Aug14   0:00 /sbin/mingetty /dev/tty6
root      2797  0.0  0.0      0     0 ?        S    Aug14   0:12 [kworker/u30:2]
ntp       2821  0.0  0.1  29288  1808 ?        Ss   Aug14   0:01 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
apache   12405  0.1  4.2 471264 42920 ?        S    Aug22   1:08 /usr/sbin/httpd
apache   12412  0.1  3.6 466372 37440 ?        S    Aug22   1:07 /usr/sbin/httpd
apache   12413  0.1  4.1 487140 42788 ?        S    Aug22   1:09 /usr/sbin/httpd
apache   12416  0.1  3.8 466764 39020 ?        S    Aug22   1:12 /usr/sbin/httpd
apache   12417  0.1  4.3 474916 44180 ?        S    Aug22   1:09 /usr/sbin/httpd
apache   12418  0.1  3.9 466596 40108 ?        S    Aug22   1:07 /usr/sbin/httpd
apache   12419  0.1  4.1 483704 42392 ?        S    Aug22   1:08 /usr/sbin/httpd
root     12960  0.0  0.0      0     0 ?        S    Aug22   0:00 [kworker/u30:0]
apache   14977  0.7  4.2 485100 43372 ?        S    Aug21  24:02 /usr/sbin/httpd
apache   14978  0.7  4.1 489860 42536 ?        S    Aug21  23:32 /usr/sbin/httpd
apache   14979  0.7  4.3 484092 44816 ?        S    Aug21  23:51 /usr/sbin/httpd
apache   14980  0.7  4.1 491120 42312 ?        S    Aug21  24:01 /usr/sbin/httpd
apache   14981  0.7  4.1 491984 42732 ?        S    Aug21  23:34 /usr/sbin/httpd
apache   14982  0.7  4.2 491680 43680 ?        S    Aug21  23:43 /usr/sbin/httpd
apache   14983  0.7  4.1 491768 42404 ?        S    Aug21  23:28 /usr/sbin/httpd
apache   14984  0.7  4.0 490436 41508 ?        S    Aug21  23:42 /usr/sbin/httpd
apache   15030  0.7  4.3 486920 44224 ?        S    Aug21  23:39 /usr/sbin/httpd
apache   15040  0.6  4.7 486704 48124 ?        S    Aug21  23:11 /usr/sbin/httpd
apache   15343  0.6  4.0 484224 41632 ?        S    Aug21  22:56 /usr/sbin/httpd
apache   16238  0.6  4.1 486556 41812 ?        S    Aug21  22:34 /usr/sbin/httpd
root     17169  0.0  0.6 115740  6536 ?        Ss   10:58   0:00 sshd: ec2-user [priv]
ec2-user 17171  0.0  0.5 115740  5140 ?        S    10:58   0:00 sshd: ec2-user@pts/0
ec2-user 17172  0.0  0.3 115476  3320 pts/0    Ss   10:58   0:00 -bash
ec2-user 17227  4.0  0.2 117204  2340 pts/0    R+   10:58   0:00 ps aux
ec2-user 21561  0.0  0.0 113084     0 ?        S    Aug21   0:00 /bin/sh /home/ec2-user/bin/startJayServer.sh
ec2-user 21562 49.2  7.2 2283928 73668 ?       Sl   Aug21 1393:33 java -server com.jayavon.game.server.MyServer -PROD
apache   24084  0.5  4.4 486596 45336 ?        S    Aug21  14:53 /usr/sbin/httpd
KisnardOnline
sumber
Bisakah kamu sunting dalam output yang relevan dari ps aux && free?
Matt Clark
Perhatikan juga bahwa MySQL Server sering menjadi korban , bukan penyebab, masalah kelelahan memori.
Michael - sqlbot
@MattClark Saya telah menambahkan di output yang Anda minta. Maaf butuh waktu lama, saya tidur. Sangat menghargai bantuan Anda!
KisnardOnline
Dari output ps aux, akan terlihat bahwa semua RAM Anda sedang dimakan oleh httpd . Dalam cetakan, saya bisa melihat ~ 19 httpd proses mengkonsumsi ~ 40MiB masing-masing = ~ 750 + MiB.
Matt Clark
Anda mungkin ingin mencari panduan penyetelan untuk httpd / apache (2).
Matt Clark

Jawaban:

1

Secara default, top akan mengurutkan proses berdasarkan penggunaan CPU - jadi sepertinya apa pun yang memakan semua memori Anda tidak menggunakan banyak waktu CPU.

Untuk mengurutkan top oleh memori penduduk, gunakan

top -o RES
# or
top -o MEM

# commands may vary slightly depending on distros

Dalam cetakan ps aux yang telah Anda berikan, kita dapat melihat bahwa ada ~ 20 httpd proses, masing-masing mengkonsumsi hampir 40MiB = ~ 800MiB dari RAM yang berharga.

Anda mungkin ingin melihat panduan penyetelan untuk httpd / apache2.

Matt Clark
sumber