ทำ cache file ยิ่งไฟล์เยอะ ยิ่งทำให้ใช้ Ram ของ Server เยอะ !!

เริ่มโดย iluis, 08 มีนาคม 2013, 18:19:40

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

iluis

ทำ cache file ยิ่งไฟล์เยอะ ยิ่งทำให้ใช้ Ram ของ Server เยอะ !!

หัวข้อนี้เป็นการแชร์และขอความรู้ในตัวน่ะคับ เนื่องจากผมมีเว็บอยู่เว็บนึงคนเข้าประมาณหลักหมื่่น แต่ว่ามีปัญหากับการ query ข้อมูลจาก DB มากจนเกินไป ทำให้ mysql เดี้ยงบ่อย ๆ เลยทำการแก้โปรแกรมโดยใช้ cache ไฟล์ แต่ว่าข้อมูลหน้าที่จะ cache มีเยอะ หลายหน้า ผมทำการ cache 1 หน้าต่อ 1 ไฟล์ โดยใช้ phpcache-kit ช่วย น่าจะประมาณหลักหมื่นไฟล์ที่ cache เก็บไว้ใน folder เท่าที่ผมสังเกตคือว่า ยิ่งไฟล์ cache เพ่ิม ram ยิ่งหมดไปเรื่อย ๆ ดังกราฟนี้ จะเห็นว่าพอผมลบไฟล์ cache ทิ้งไป Ram ก็เพิ่มขึ้นมาและก็จะลง ๆ ไปเรื่อย ๆ เวลา ลบ cache อีกก็เพิ่มอีก



ในการณี้นี้ท่านไหนเคยมีประสบการณ์จะมาแบ่งปันความรู้บ้างครับ

ขอบคุณอย่างสุดซึ้งจ้าาาา :(
[direct=https://www.donang.org]ดูหนัง[/direct] [direct=https://www.donang.org/posts]เว็บหนัง[/direct]

bouy22

แต่ก่ิอนใช้การแคชเหมือนกันครับ แต่พอคนเริ่มเยอะ แคชไฟล์เริ่มเยอะ ก็เดี้ยงเหมือนกัน วันนึงแคชไฟล์เป็น 700 เมก - 1 จิ๊ก

ไปๆ มาๆ ช้ากว่าเดิม ถึงช้ามาก สุดท้ายก็ล่มเหมือนกัน

เลยต้องมาดู และ แก้ที่ต้นเหตุไปเลย ก็ดีขึ้นเยอะ
สนใจทำธุรกิจ[direct=http://www.nongphojsin.com/]ไอศกรีมหนองโพ[/direct]คลิกเลย | ลงประกาศโฆษณา [direct=http://www.marukopost.com/]ประกาศฟรี[/direct] | [direct=http://www.uuppic.com/]เว็บฝากรูป[/direct] | [direct=http://www.jeedgame.com/]สคริปเกมแฟลช[/direct] |
ผลิตภัณฑ์เสริมอาหารออกซิเจนน้ำ [direct=http://www.adoxy-thai.com/]Adoxy[/direct]

iluis

อ้างถึงจาก: bouy22 ใน 08 มีนาคม 2013, 18:46:10
แต่ก่ิอนใช้การแคชเหมือนกันครับ แต่พอคนเริ่มเยอะ แคชไฟล์เริ่มเยอะ ก็เดี้ยงเหมือนกัน วันนึงแคชไฟล์เป็น 700 เมก - 1 จิ๊ก

ไปๆ มาๆ ช้ากว่าเดิม ถึงช้ามาก สุดท้ายก็ล่มเหมือนกัน

เลยต้องมาดู และ แก้ที่ต้นเหตุไปเลย ก็ดีขึ้นเยอะ


ไม่ทราบว่าแก้โดยวิธีไหนเหรอครับ แชร์ได้ไหมครับ  :wanwan017:
[direct=https://www.donang.org]ดูหนัง[/direct] [direct=https://www.donang.org/posts]เว็บหนัง[/direct]

iLhay

แรมหมดจริง หรือว่าหมดเก๊แล้วไปอยู่ใน cache ครับ ?

clear cache บ่อยๆ ไม่ช่วยอะไรนะครับ
[direct=https://bangmod.cloud/wordpress-hosting/]Wordpress Hosting

[/direct]
[direct=https://bangmod.cloud/wordpress-hosting/]Wordpress Hosting[/direct] เริ่มต้นปีละ 790 บาท NVMe SSD เร็ว 9000MB/s เร็วกว่านี้ไม่มีอีกแล้ว
[direct=https://bangmod.cloud/cloud-server]Cloud Server[/direct] เริ่มต้นเพียงเดือนละ 159 บาท พร้อมใช้ภายใน 1 นาที ผ่านระบบอัตโนมัติมีทั้ง Linux / Windows / DirectAdmin
สอบถามข้อมูลและแจ้งปัญหา 02-105-4417 ตลอด 24 ชั่วโมง

bouy22

อ้างถึงจาก: iluis ใน 08 มีนาคม 2013, 18:47:07

ไม่ทราบว่าแก้โดยวิธีไหนเหรอครับ แชร์ได้ไหมครับ  :wanwan017:

เขียนโค๊ด + ออกแบบ db ใหม่หมดเกือบหมดครับ  :P

**พอดีของผมมันเป็นสคริปที่ซื้อมาครับ เขีียนได้สุดติ่ง แก้กันมันส์ ถึงตอนนี้ก็ยังไม่ดีขึ้นเท่าไร เพราะยังแก้ไม่หมด แต่ก็ดีขึ้นกว่าแต่ก่อนเยอะ

ที่มันช้าส่วนหนึ่งผมคิดเอาเองว่าเราเก็บไฟล์แคช ไว้ที่เดียวหมด พอมันจะเรียกใช้ทีก็ต้องเข้าไปหา ซึ่งใช้เวลา ยิ่งไฟล์เยอะ ขนาดใหญ่มันก็ยิ่งช้า ยิ่งเปลืองแรม
สนใจทำธุรกิจ[direct=http://www.nongphojsin.com/]ไอศกรีมหนองโพ[/direct]คลิกเลย | ลงประกาศโฆษณา [direct=http://www.marukopost.com/]ประกาศฟรี[/direct] | [direct=http://www.uuppic.com/]เว็บฝากรูป[/direct] | [direct=http://www.jeedgame.com/]สคริปเกมแฟลช[/direct] |
ผลิตภัณฑ์เสริมอาหารออกซิเจนน้ำ [direct=http://www.adoxy-thai.com/]Adoxy[/direct]

iluis

อ้างถึงจาก: iLhay ใน 08 มีนาคม 2013, 18:48:02
แรมหมดจริง หรือว่าหมดเก๊แล้วไปอยู่ใน cache ครับ ?

clear cache บ่อยๆ ไม่ช่วยอะไรนะครับ

ไม่แน่ใจคำถามน่ะครับ แต่ว่าดูตามกราฟอ่ะครับ ยิ่งไฟล์เยอะยิ่งหมด
[direct=https://www.donang.org]ดูหนัง[/direct] [direct=https://www.donang.org/posts]เว็บหนัง[/direct]

iluis

อ้างถึงจาก: bouy22 ใน 08 มีนาคม 2013, 18:53:47
อ้างถึงจาก: iluis ใน 08 มีนาคม 2013, 18:47:07

ไม่ทราบว่าแก้โดยวิธีไหนเหรอครับ แชร์ได้ไหมครับ  :wanwan017:

เขียนโค๊ด + ออกแบบ db ใหม่หมดเกือบหมดครับ  :P

**พอดีของผมมันเป็นสคริปที่ซื้อมาครับ เขีียนได้สุดติ่ง แก้กันมันส์ ถึงตอนนี้ก็ยังไม่ดีขึ้นเท่าไร เพราะยังแก้ไม่หมด แต่ก็ดีขึ้นกว่าแต่ก่อนเยอะ

ที่มันช้าส่วนหนึ่งผมคิดเอาเองว่าเราเก็บไฟล์แคช ไว้ที่เดียวหมด พอมันจะเรียกใช้ทีก็ต้องเข้าไปหา ซึ่งใช้เวลา ยิ่งไฟล์เยอะ ขนาดใหญ่มันก็ยิ่งช้า ยิ่งเปลืองแรม

ผมก็ cache ไว้ที่เดียวกันน่ะครับ แต่แบ่ง sub folder เช่น cache/01/file.cache, cache/02/file.cahe ประมาณนี้ครับ ก็เห็นจะไม่ช่วยอะไร  :wanwan023:
[direct=https://www.donang.org]ดูหนัง[/direct] [direct=https://www.donang.org/posts]เว็บหนัง[/direct]

bouy22

ผมว่าอาจจะต้องลองดูที่ต้นเหตุก่อนครับว่าใช้สคริปอะไร โค๊ดเป็นแบบไหน มันมีตรงไหนปรับได้บ้าง

เซิฟแรมน้อยไปมั้ย จูนเซิฟดีรึยัง ฯลฯ

สนใจทำธุรกิจ[direct=http://www.nongphojsin.com/]ไอศกรีมหนองโพ[/direct]คลิกเลย | ลงประกาศโฆษณา [direct=http://www.marukopost.com/]ประกาศฟรี[/direct] | [direct=http://www.uuppic.com/]เว็บฝากรูป[/direct] | [direct=http://www.jeedgame.com/]สคริปเกมแฟลช[/direct] |
ผลิตภัณฑ์เสริมอาหารออกซิเจนน้ำ [direct=http://www.adoxy-thai.com/]Adoxy[/direct]

iLhay

ก็ถ้าตามกราฟ มันก็หมดไปเฉยๆ (Linux มันกินเล่นอยุ่แล้ว ไม่เห็นจะแปลกที่มันหมดนะครับ)

อาการแรมหมดจริงๆมันเป็นอย่างอื่น ผมเลยถามกลับนี่ละครับ ตอนที่คุณบอกว่ามันหมด ได้ดูหรือเปล่าว่ามันหมดจริงหรือหมดเก๊

แต่ผมเดาว่ามันหมดเก๊ ส่วนสาเหตุที่แรมหมด ก็อย่างที่บอกครับ Linux ใช้แรมเป็นของเล่น

ถ้าอยากจะรุ้ว่าหมดจริงหมดเก๊ ก็ตามนี้ครับ

"free -m" เพื่อดูว่า ram อยุ่ใน cache เท่าไหร่ ถ้าอยุ่เยอะ ก็แปลว่ามันยืมแรมไปโยนเล่น

และถ้าดูแบบละเอียดหน่อย ก็

cat /proc/meminfo

php cache ไม่ได้มีส่วนใดๆเกี่ยวกับการใช้ memory ที่มันไปจองไว้

แต่สาเหตุที่มันช่วยลดภาระ mysql ได้ก็เพราะว่ามันจะ generate output ไว้และเอามาทำเป็น cache

ซึ่งเวลาเราเรียกไป มันก็โชว์มาเป็น cache ไม่ได้โชว์ข้อมูลจริง ทีนี้ระยะเวลาในการ clear ก็ขึ้นอยุ่กับคุณกำหนด

แต่ทำไมแรมถึงหมด ??

การ generate cache ทีหนึ่งใช้ ram มากน้อยตามสคิปที่ท่านๆเขียนกัน

เมื่อแรมเหลือ process ทีใช้ประมวลผลเยอะ มันก็เอาแรมมาใช้เล่น

แต่ไม่ค่อยเคลียร์ ไอตรงที่ลบ cache นี่ละ

ลบที่ไหน คุณแค่ลบไฟล์ .cache หรืออะไรก็ตามแต่ตามที่สคิปคุณเขียนขึ้นมา หรือว่า clear cache server ?

และที่สำคัญ server ที่แสดงมา vps หรือ dedicate ?
[direct=https://bangmod.cloud/wordpress-hosting/]Wordpress Hosting

[/direct]
[direct=https://bangmod.cloud/wordpress-hosting/]Wordpress Hosting[/direct] เริ่มต้นปีละ 790 บาท NVMe SSD เร็ว 9000MB/s เร็วกว่านี้ไม่มีอีกแล้ว
[direct=https://bangmod.cloud/cloud-server]Cloud Server[/direct] เริ่มต้นเพียงเดือนละ 159 บาท พร้อมใช้ภายใน 1 นาที ผ่านระบบอัตโนมัติมีทั้ง Linux / Windows / DirectAdmin
สอบถามข้อมูลและแจ้งปัญหา 02-105-4417 ตลอด 24 ชั่วโมง

iluis

อ้างถึงจาก: iLhay ใน 08 มีนาคม 2013, 19:08:04
ก็ถ้าตามกราฟ มันก็หมดไปเฉยๆ (Linux มันกินเล่นอยุ่แล้ว ไม่เห็นจะแปลกที่มันหมดนะครับ)

อาการแรมหมดจริงๆมันเป็นอย่างอื่น ผมเลยถามกลับนี่ละครับ ตอนที่คุณบอกว่ามันหมด ได้ดูหรือเปล่าว่ามันหมดจริงหรือหมดเก๊

แต่ผมเดาว่ามันหมดเก๊ ส่วนสาเหตุที่แรมหมด ก็อย่างที่บอกครับ Linux ใช้แรมเป็นของเล่น

ถ้าอยากจะรุ้ว่าหมดจริงหมดเก๊ ก็ตามนี้ครับ

"free -m" เพื่อดูว่า ram อยุ่ใน cache เท่าไหร่ ถ้าอยุ่เยอะ ก็แปลว่ามันยืมแรมไปโยนเล่น

และถ้าดูแบบละเอียดหน่อย ก็

cat /proc/meminfo

php cache ไม่ได้มีส่วนใดๆเกี่ยวกับการใช้ memory ที่มันไปจองไว้

แต่สาเหตุที่มันช่วยลดภาระ mysql ได้ก็เพราะว่ามันจะ generate output ไว้และเอามาทำเป็น cache

ซึ่งเวลาเราเรียกไป มันก็โชว์มาเป็น cache ไม่ได้โชว์ข้อมูลจริง ทีนี้ระยะเวลาในการ clear ก็ขึ้นอยุ่กับคุณกำหนด

แต่ทำไมแรมถึงหมด ??

การ generate cache ทีหนึ่งใช้ ram มากน้อยตามสคิปที่ท่านๆเขียนกัน

เมื่อแรมเหลือ process ทีใช้ประมวลผลเยอะ มันก็เอาแรมมาใช้เล่น

แต่ไม่ค่อยเคลียร์ ไอตรงที่ลบ cache นี่ละ

ลบที่ไหน คุณแค่ลบไฟล์ .cache หรืออะไรก็ตามแต่ตามที่สคิปคุณเขียนขึ้นมา หรือว่า clear cache server ?

และที่สำคัญ server ที่แสดงมา vps หรือ dedicate ?
ละเอียดมาก ขอบคุณครับ server เป็น dedicate ครับ เดี๋ยวผมจะลองเช็คตามที่แนะนำก่อนน่ะครับ ไว้จะมาอัพเดทครับ
[direct=https://www.donang.org]ดูหนัง[/direct] [direct=https://www.donang.org/posts]เว็บหนัง[/direct]

iluis

อ้างถึงจาก: iluis ใน 08 มีนาคม 2013, 19:25:04
อ้างถึงจาก: iLhay ใน 08 มีนาคม 2013, 19:08:04
ก็ถ้าตามกราฟ มันก็หมดไปเฉยๆ (Linux มันกินเล่นอยุ่แล้ว ไม่เห็นจะแปลกที่มันหมดนะครับ)

อาการแรมหมดจริงๆมันเป็นอย่างอื่น ผมเลยถามกลับนี่ละครับ ตอนที่คุณบอกว่ามันหมด ได้ดูหรือเปล่าว่ามันหมดจริงหรือหมดเก๊

แต่ผมเดาว่ามันหมดเก๊ ส่วนสาเหตุที่แรมหมด ก็อย่างที่บอกครับ Linux ใช้แรมเป็นของเล่น

ถ้าอยากจะรุ้ว่าหมดจริงหมดเก๊ ก็ตามนี้ครับ

"free -m" เพื่อดูว่า ram อยุ่ใน cache เท่าไหร่ ถ้าอยุ่เยอะ ก็แปลว่ามันยืมแรมไปโยนเล่น

และถ้าดูแบบละเอียดหน่อย ก็

cat /proc/meminfo

php cache ไม่ได้มีส่วนใดๆเกี่ยวกับการใช้ memory ที่มันไปจองไว้

แต่สาเหตุที่มันช่วยลดภาระ mysql ได้ก็เพราะว่ามันจะ generate output ไว้และเอามาทำเป็น cache

ซึ่งเวลาเราเรียกไป มันก็โชว์มาเป็น cache ไม่ได้โชว์ข้อมูลจริง ทีนี้ระยะเวลาในการ clear ก็ขึ้นอยุ่กับคุณกำหนด

แต่ทำไมแรมถึงหมด ??

การ generate cache ทีหนึ่งใช้ ram มากน้อยตามสคิปที่ท่านๆเขียนกัน

เมื่อแรมเหลือ process ทีใช้ประมวลผลเยอะ มันก็เอาแรมมาใช้เล่น

แต่ไม่ค่อยเคลียร์ ไอตรงที่ลบ cache นี่ละ

ลบที่ไหน คุณแค่ลบไฟล์ .cache หรืออะไรก็ตามแต่ตามที่สคิปคุณเขียนขึ้นมา หรือว่า clear cache server ?

และที่สำคัญ server ที่แสดงมา vps หรือ dedicate ?
ละเอียดมาก ขอบคุณครับ server เป็น dedicate ครับ เดี๋ยวผมจะลองเช็คตามที่แนะนำก่อนน่ะครับ ไว้จะมาอัพเดทครับ

[root@localhost ~]# free -m
            total       used       free     shared    buffers     cached
Mem:          7472       4361       3111          0        634       3190
-/+ buffers/cache:        536       6936
Swap:         9483          0       9483


[root@localhost ~]# cat /proc/meminfo
MemTotal:      7651960 kB
MemFree:       3180280 kB
Buffers:        650540 kB
Cached:        3271020 kB
SwapCached:          0 kB
Active:        1212612 kB
Inactive:      2940504 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:      7651960 kB
LowFree:       3180280 kB
SwapTotal:     9711284 kB
SwapFree:      9711284 kB
Dirty:            5616 kB
Writeback:           0 kB
AnonPages:      230584 kB
Mapped:          31216 kB
Slab:           274712 kB
PageTables:      12248 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:  13537264 kB
Committed_AS:   552756 kB
VmallocTotal: 34359738367 kB
VmallocUsed:    267316 kB
VmallocChunk: 34359470959 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB
[root@localhost ~]#

ตามนี้เลยครับ แสดงว่ามันเอาไปโยนเล่นเหรอครับ?
[direct=https://www.donang.org]ดูหนัง[/direct] [direct=https://www.donang.org/posts]เว็บหนัง[/direct]

watchlakorn

กรณีของคุณ ระบบเก็บ ram ไปทำ Cache 3 g
ยังไม่ได้ใช้ประโยชน์ MemFree 3g <ปล.ไม่ได้ทำประโยชน์อะไรเลยตั้ง 3g>

ระบบ linux จะใช้งาน ram เอาไปทำ cache สำหรับไฟล์ที่เรียกใช้บ่อยๆ เพื่อลด ภาระการเรียกใช้งาน HDD และทำงานได้เร็ว แต่เมื่อไหร่ที่มันต้องการใช้งาน ram เพิ่มจากเดิม มันจะไปเอา ram ส่วนที่มันเอาไปทำ Cache มาใช้งานเองไม่ต้องตกใจครับ

ระบบเค้าออกแบบมาแบบนี้ มันถึงเร็ว เสถียร เหมาะสำหรับทำ server ไงครับ


Patum Digital Technology LTD.
VPS | Reseller | Dedicated | Colocation
http://www.patumhost.com

ayeweb

เคยแคชไฟล์หลักแสนกว่าครับ
เน่าทั้ง server ห้าๆ
ตอนนี้ยังหาทางกูเว็บกลับไม่ได้เลย

[direct=https://www.bitimer.in.th/]ข่าวไอที[/direct] ข่าวสารไอที แอพไอโฟน บริการอื่นๆ
[direct=https://page.line.me/gnm7628z]บริการ ตรวจหวย[/direct] อื่นๆ ทั่วไปสาระน่ารู้ ความรู้ต่างๆ
[direct=https://goo.gl/XQp91t]Host ไทย[/direct] เว็บผู้หญิงนะคะ แต่ผู้ชายก็เข้าได้ค่ะ
[direct=https://page.line.me/oer1981h]ตรวจหวย[/direct]
ตรวจหวย ผลสลากกินแบ่งรัฐบาล>>
[direct=https://goo.gl/H3JCzK]เช่าโฮสติ้ง Ruk-com[/direct]

tenzamak

ผมเคยเจอเคสนึง แคสหลายล้าน  ย้าย VPS ไปหลาย VPS ก็แก้ไม่จบ หาสาเหตุไม่เจอ

ผมเองก็จนปัญญาในตอนแรก  เพราะ ไม่มีปัญญา มากพอ จะดูไฟล์หลายล้านไฟล์ได้  สุดท้าย  ใช้วิธี  เอา cache ออกทิ้งหมด

แล้วลองรันใหม่ หาสาเหตุ  ผลปรากฏว่า  cache หลายล้านนั้นนะ  เป็น bug ของคนเขียนโปรแกรม  ที่ไม่ยอม ให้ลบ expire cache

tdelphi

ทำระบบ cache ต้องระวังเรื่อง inode ด้วย ถ้าเยอะ ยิ่งช้า และ กินแรม ตรง inode บวมนี่แหละ

ทางที่ดี ไปใช้ระบบ software ที่ทำ web cache หรือ reverse proxy มาช่วยแทนจะง่ายกว่า เพราะมันมีระบบ cache expired

kaorism

แทนที่จะ cache ใน mem // ลอง cache เป็น  file html  ดูนะครับ  ในหน้าที่มีการโหลดบ่อย ๆ
อย่างเช่นหน้า blog ส่วนใหญ่ ซึ่งคนจำนวนอ่านมากกว่าคนเม้นมาก ๆ    เราจะค่อยไม่ได้ update หน้านี้อยู่แล้ว ก็ cache เป็น html / พอจะมีคนมาเม้น  ก็ให้ cache เก็บอีกรอบ
ก็จะไม่เปลืองทั้ง mem และ query db ครับ
DropRobot - Domains and SEO network expert  [direct=http://www.droprobot.com]droprobot.com[/direct]
ไม่มี account ก็ pm มานะจ๊ะ  ตอนนี้รับจำนวนจำกัด...


- has1.com   yim8.com  1xyz.com  kor3.com  bd2u.com, ig69.com  / โดเมนละ 1000 บาท
- ออกแบบ [direct=http://www.caseucase.com]เคส iPhone 5[/direct] และเคสอื่นๆ ออนไลน์

BigChange

ปรกติผมก็ทำ cache นะครับระดับเป็นล้านไฟล์ ram ก็ลดแบบนี้ แต่มันเป็น ram ที่ระบบยืมไปใช้ หากมีส่วนที่จำเป็นต้องใช้มันก็จะดึงคืนมาเองนิครับ
จำเป็นต้องมี cache ครับ เปลือง ram แต่ลด cpu และ load time ผมว่าคุ้มค่ามากๆ  :wanwan020:
small actions x lots of people = Big Change

gamepc2u


nuvatchai

เลิกใช้ cache แล้วไปใช้ vps ssd สิ คนเข้าแค่หมื่น จิ๊บๆ

iluis

ขอบคุณทุกความคิดเห็นน่ะครับ ตอนนี้พอเข้าใจเรื่องการนำ ram ไปใช้งานของ server จากหลาย ๆ ท่านที่อธิบายมาบ้างแล้ว ค่อยสบายใจขึ้นครับ และสุรปตอนนี้ผมจะปล่อยมันไปตามนั้นอ่ะครับ ไว้หากมันเกิดปัญหาจะมาอัพเดทน่ะครับผม  :wanwan017:
[direct=https://www.donang.org]ดูหนัง[/direct] [direct=https://www.donang.org/posts]เว็บหนัง[/direct]