Wajarkah memory usagenya..??

Discussion in 'Masalah Teknik dan Keamanan' started by xphones, 17 May 2012.

Thread Status:
Not open for further replies.
  1. xphones

    xphones Expert 1.0

    Messages:
    747
    Likes Received:
    41
    Trophy Points:
    28
    Begini...
    SERVER A setelah saya install cpanel beserta segala pendukungnya pemakaian memory sekitar 350-375mb, setelah sedikit optimise mysql dan apache RAM turun jadi 250-325MB

    SERVER B dengan step yang 99% sama dengan SERVER A setelah optimise saya bisa mereduce ram sampai ke 210-230MB saja.

    Kedua server diatas saat itu sama2 kosong/belum ditempati account hosting.

    Yang saat ini mengganjal di pikiran saya adalah SERVER A saat ini sudah ditempati sekitar 20 domain beberapa subdomain termasuk addon domain aktif. total visitor dari kesemua domain yang menempati server tersebut saya perkirakan sekitar 5000-9000 orang/hari. namun ram yang terpakai saat ini sudah antara 550MB-700MB. sedangkan load cpu stabil di 0,xx. hanya ketika schedule cpbackup saja load kadang naik ke 1,xx.

    Nah menurut rekan2 apakah RAM usage segitu termasuk masih wajar atau harus ada yang dioptimise lagi.??

    Dari proses daily log belum ada account yang pakai resource cpu/ram lebih dari 20% secara terus menerus (hanya sesekali saja memang ada yang kadang sampai 40% tapi cuma sebentar saja). Saya juga belum menemukan plugin2 nakal karena sebagian besar plugin nakal sudah saya masukkan ke blacklist mod_security.
     
  2. BennyKusman

    BennyKusman Hosting Guru DWH Guardian Web Hosting (Company)

    Messages:
    2,234
    Likes Received:
    239
    Trophy Points:
    63
    penggunaan memory juga bergantung kalau ada cache sistem yang aktif seperti varnish/apc, mysql, dll
    selagi load server < 1, saya rasa wajar2 aja..
     
  3. Adhie

    Adhie Expert 1.0

    Messages:
    733
    Likes Received:
    56
    Trophy Points:
    28
    coba liat dari

    Code:
    ps -eo user,pcpu,pmem | tail -n +2 | awk '{num[$1]++; cpu[$1] += $2; mem[$1] += $3} END{printf("NPROC\tUSER\tCPU\tMEM\n"); for (user in cpu) printf("%d\t%s\t%.2f\t%.2f\n",num[user], user, cpu[user], mem[user]) }'
    atau bisa menggunakan NGINX atau Varnish untuk optimasi web server CMIIW
     
  4. xphones

    xphones Expert 1.0

    Messages:
    747
    Likes Received:
    41
    Trophy Points:
    28
    Saya sudah pake nginx mas..
    Code:
    NPROC   USER    CPU     MEM
    4       dovecot 0.00    0.00
    3       named   0.00    0.00
    1       domainA.com        5.50    1.90
    6       nobody  14.30   7.20
    1       mailnull        0.00    0.00
    1       mysql   0.50    3.00
    31      root    0.00    4.50
    -------------
    NPROC   USER    CPU     MEM
    4       dovecot 0.00    0.00
    1       domainB.com  5.10    1.70
    3       named   0.00    0.00
    6       nobody  14.80   7.40
    1       mailnull        0.00    0.00
    1       mysql   0.50    3.00
    31      root    0.00    4.50
    --------------
    NPROC   USER    CPU     MEM
    4       dovecot 0.00    0.00
    3       named   0.00    0.00
    7       nobody  20.30   8.80
    1       mailnull        0.00    0.00
    1       mysql   0.50    3.00
    31      root    0.00    4.50
    -----------
    root@xxxxxx [~]# uptime
     19:41:48 up 14 days, 18:09,  1 user,  load average: 0.28, 0.30, 0.26
    
     
  5. mixmaxspace

    mixmaxspace Hosting Guru

    Messages:
    1,235
    Likes Received:
    99
    Trophy Points:
    48
    Lha itu bagus? apanya yang salah?
     
  6. xphones

    xphones Expert 1.0

    Messages:
    747
    Likes Received:
    41
    Trophy Points:
    28
    Lha apanya yang bagus... Ketika sebelum diisi account saja sudah 325MB dan baru terisi 20 domain saja sudah segitu bagaimana kalau nanti sudah terisi 200 domain...
    :D
     
  7. cpserv

    cpserv Expert 1.0

    Messages:
    866
    Likes Received:
    123
    Trophy Points:
    43
    infonya ada yg kurang :D

    memory servernya brapa?

    tapi kemungkinannya karena beda hard disknya.. sequential hard disk bisa beda walaupun sama merk sama type..
     
  8. xphones

    xphones Expert 1.0

    Messages:
    747
    Likes Received:
    41
    Trophy Points:
    28
    Saya pake virtuozzo mas, Dedicated RAM 2GB Burst 2GB

    Code:
    root@xxxxx [~]# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
    16384+0 records in
    16384+0 records out
    1073741824 bytes (1.1 GB) copied, 8.47775 seconds, 127 MB/s
    
    Code:
    root@xxxxx [~]# wget cachefly.cachefly.net/100mb.test -O /dev/null
    --2012-05-19 00:41:17--  http://cachefly.cachefly.net/100mb.test
    Resolving cachefly.cachefly.net... 205.234.175.175
    Connecting to cachefly.cachefly.net|205.234.175.175|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 104857600 (100M) [application/octet-stream]
    Saving to: `/dev/null'
    
    100%[======================================>] 104,857,600 11.0M/s   in 9.0s
    
    2012-05-19 00:41:26 (11.1 MB/s) - `/dev/null' saved [104857600/104857600]
    
    MySQL
    Code:
    [mysqld]
    max_connections = 350
    key_buffer = 16M
    myisam_sort_buffer_size = 32M
    join_buffer_size = 1M
    read_buffer_size = 1M
    sort_buffer_size = 2M
    table_open_cache = 2048
    thread_cache_size = 286
    interactive_timeout = 25
    wait_timeout = 1000
    connect_timeout = 10
    max_allowed_packet = 16M
    max_connect_errors = 10
    query_cache_size = 16M
    query_cache_type = 1
    query_cache_limit = 1M
    max_heap_table_size = 16M
    tmp_table_size = 16M
    local-infile=0
    slow-query-log
    skip-innodb
     
    [mysqld_safe]
    open_files_limit = 8192
     
    [mysqldump]
    quick
    max_allowed_packet = 16M
     
    [myisamchk]
    key_buffer = 32M
    sort_buffer = 32M
    read_buffer = 16M
    write_buffer = 16M
    
    Mysqltuner
    Code:
     >>  MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net>
     >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
     >>  Run with '--help' for additional options and output filtering
    
    -------- General Statistics --------------------------------------------------
    [--] Skipped version check for MySQLTuner script
    [OK] Currently running supported MySQL version 5.1.62-cll
    [OK] Operating on 32-bit architecture with less than 2GB RAM
    
    -------- Storage Engine Statistics -------------------------------------------
    [--] Status: +Archive -BDB -Federated -InnoDB -ISAM -NDBCluster
    [--] Data in MyISAM tables: 125M (Tables: 1455)
    [--] Data in MEMORY tables: 0B (Tables: 4)
    [!!] Total fragmented tables: 43
    
    -------- Security Recommendations  -------------------------------------------
    [OK] All database users have passwords assigned
    
    -------- Performance Metrics -------------------------------------------------
    [--] Up for: 1d 20h 53m 13s (4M q [25.662 qps], 101K conn, TX: 33B, RX: 504M)
    [--] Reads / Writes: 79% / 21%
    [--] Total buffers: 48.0M global + 4.4M per thread (350 max threads)
    [OK] Maximum possible memory usage: 1.6G (78% of installed RAM)
    [OK] Slow queries: 0% (0/4M)
    [OK] Highest usage of available connections: 3% (13/350)
    [OK] Key buffer size / total MyISAM indexes: 16.0M/30.9M
    [OK] Key buffer hit rate: 99.7% (51M cached / 155K reads)
    [OK] Query cache efficiency: 82.7% (2M cached / 3M selects)
    [!!] Query cache prunes per day: 95309
    [OK] Sorts requiring temporary tables: 0% (23 temp sorts / 63K sorts)
    [!!] Joins performed without indexes: 4129
    [OK] Temporary tables created on disk: 17% (24K on disk / 139K total)
    [OK] Thread cache hit rate: 99% (13 created / 101K connections)
    [OK] Table cache hit rate: 54% (1K open / 2K opened)
    [OK] Open file limit used: 36% (3K/8K)
    [OK] Table locks acquired immediately: 99% (779K immediate / 779K locks)
    
    -------- Recommendations -----------------------------------------------------
    General recommendations:
        Run OPTIMIZE TABLE to defragment tables for better performance
        Adjust your join queries to always utilize indexes
    Variables to adjust:
        query_cache_size (> 16M)
        join_buffer_size (> 1.0M, or always use indexes with joins)
    
    Httpd
    Code:
    Start Servers=1 (sudah coba naikkan jadi 2)
    Minimum Spare Servers=1 (sama dg diatas)
    Maximum Spare Servers=5
    Server Limit=150
    Max Clients=150
    Max Requests Per Child=10000
    Keep-Alive=on
    Keep-Alive Timeout=3
    Max Keep-Alive Requests=100
    Timeout=100 (pernah set jadi 30 dan 120)
    
    httpd dengan setingan yg sudah saya coba rubah2 dg nilai seperti diatas sepertinya tidak ada perubahan apapun. apa sebaiknya nilai penggunaan memory oleh httpd diturunkan saja ya? defaultnya "178956970"
     
  9. cpserv

    cpserv Expert 1.0

    Messages:
    866
    Likes Received:
    123
    Trophy Points:
    43
    itu dua2nya di dalem node yang sama? atau beda node?

    klo bener 99% semua confignya sama dan penggunaan resourcenya (memory) beda kemungkinan terakhir memang di harddisk (atau processor), itu memory penuh karena waktu tunggu penulisan akhir (ke harddisk) atau penyelesaian proses (di processor).

    agak bingung sih saya,, pernah pake tuning-primer.sh ga? coba itu deh, lebih enak jelasinnya dia daripada mysqltuner :D

    tapi satu masukan mungkin :
    my.cnf : max_connections = 350
    mysqltuner : [OK] Highest usage of available connections: 3% (13/350)

    itu mungkin agak kegedean yah? tapi coba tunggu aja nanti kalau udah agak penuh, saya sih maksimal seumur idup saya paling banyak koneksi itu 107 connections. ga pernah lebih dari itu (rata2 50-80)
     
    xphones likes this.
  10. vishualhost

    vishualhost Expert 2.0

    Messages:
    813
    Likes Received:
    81
    Trophy Points:
    28
    klo untuk pemakaian memory dengan total account 20 ini bisa dilihat juga dari beberapa sisi :

    1. semakin banyak module yg dipakai apache dalam config ini bisa mempengaruhi usage memory dari apache itu sendiri

    2. a ) pemakaian nginx buat mereduce ram di server jika account masih sedikit ini persepsi yg salah kecuali jika acc sudah banyak dan ram usage apache normal itu sudah diatas / lebih besar dari yg dipakai nginx setelah di server apache di combine dengan nginx, baru disini proses nginx akan terlihat buat reduce ram usage , karena nginx memakai cache yg cukup lumayan besar untuk processnya jadi saran saya jika account cpanel masih dibawah 100 / 50 lebih baik leave nginx dan pakai varnish / single apache saja .

    b ) Nginx ini reading config vhost user untuk processnya, semakin banyak vhost disana semakin memory yg dipakai nginx akan besar apalagi klo memakai lua dan pendukung2 lainnya begitupun dengan disknya jika tidak di tune di nginx dengan memakaikan AIO maka akan terasa cukup besar usagenya .

    3. untuk pengaturan memory pd mysql sesuai config yg saya lihat , untuk config yg mas pakai itu misal 20 user On bersamaan dengan asumsi total 20 account diserver saja itu akan memakan proses memory

    Total memory needed (for 20 connections): 428.2 MB

    4. untuk keepalive lebih baik off biar ga makan too much memory

    tambahan aja :

    buat cek max ram dr process yg mau di lihat ketik aja

    ps -o rss -C httpd | tail -n +2 | (sed 's/^/x+=/'; echo x) | bc

    sample buat check total ram usage dr httpd

    ps -o rss -C nginx | tail -n +2 | (sed 's/^/x+=/'; echo x) | bc

    sample buat check total ram usage dr nginx

    dsb


    itu belum di tambah process2 memory dr plugin2 dalam vps yg lain nya , kaya process exim/mail

    jadi menurut saya ram usage segitu wajar mas , ini klo menurut analisa saya ya .
     
    xphones likes this.
Loading...
Thread Status:
Not open for further replies.

Share This Page

Loading...