วิธีเพิ่มหน่วยความจำของเครื่องเทียบท่า Mac


109

ฉันใหม่เพื่อเทียบท่าและพยายามที่จะไปผ่านการตั้งค่าการกวดวิชานี้ขึ้น MemSQL จากรูปหาง - http://docs.memsql.com/4.0/setup/docker/ ฉันใช้ Mac และบทช่วยสอนใช้boot2dockerซึ่งดูเหมือนว่าจะเลิกใช้แล้ว

VM ต้องการหน่วยความจำ 4GB เพื่อทำงาน บทช่วยสอนระบุวิธีดำเนินการboot2dockerแต่ฉันไม่พบวิธีดำเนินการกับกล่องเครื่องมือนักเทียบท่าเครื่อง / นักเทียบท่า

นี่คือคำสั่งที่ฉันใช้และข้อผิดพลาดที่ฉันได้รับเพียงพยายามทำตามบทช่วยสอนโดยไม่แก้ไขการกำหนดค่า boot2docker

docker run --rm --net=host memsql/quickstart check-system
Error: MemSQL requires at least 4 GB of memory to run.

คำตอบ:


111

เมื่อคุณสร้างเครื่องเทียบท่าคุณสามารถกำหนดขนาดหน่วยความจำ:

docker-machine create -d virtualbox --virtualbox-memory 4096 default

โปรดแจ้งให้เราทราบหากสิ่งนี้ช่วยได้


ดูเหมือนว่าจะเป็นสถานที่ที่เหมาะสมในการปรับการจัดสรรหน่วยความจำ อย่างไรก็ตามยังคงได้รับข้อผิดพลาดเดิมหลังจากรีสตาร์ท VM นี้ ในcheck-systemโปรแกรม ( github.com/memsql/memsql-docker-quickstart/blob/master/… ) ฉันเห็นบรรทัดเหล่านี้ซึ่งจะกำหนดข้อผิดพลาดนี้ ONE_MB = 1024 ** 2, ,virtual_memory = psutil.virtual_memory() if virtual_memory.total < ONE_MB * 3700: sys.stderr.write("Error: MemSQL requires at least 4 GB of memory to run.\n")
DJElbow

2
ไม่สามารถทำงานนี้ได้โดยการแก้ไข config แต่การลบและสร้าง docker machine vm ใหม่ตามที่แสดงด้านบนช่วยแก้ปัญหาได้!
DJElbow

แน่นอนฉันทำความสะอาดวิธีที่สองดูเหมือนว่ามันจะไม่ได้ผลอีกต่อไป
BMW

179

คุณสามารถทำได้ผ่านทางบรรทัดคำสั่ง ตัวอย่างเช่นหากต้องการเปลี่ยนเครื่องจากการรัน RAM 1cpu / 2048MB เริ่มต้น:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start

จากนั้นคุณสามารถตรวจสอบการตั้งค่าของคุณ:

VBoxManage showvminfo default | grep Memory
VBoxManage showvminfo default | grep CPU

และdocker-machine inspectเพื่อรายงานสถานะที่ถูกต้องของสิ่งต่างๆให้แก้ไข~/.docker/machine/machines/default/config.jsonเพื่อแสดงการเปลี่ยนแปลงของคุณ


1
สิ่งนี้ใช้งานได้แม้ว่า GUI (เวอร์ชัน 5.0.16) จะไม่ทำงาน
MikeF

6
คำตอบนี้ควรอยู่บนสุด
nakajuice

5
โปรดทราบว่าหลังจากดำเนินการคำสั่งแล้วdocker-machine inspectจะไม่แสดงการเปลี่ยนแปลงใด ๆ อย่างไรก็ตามหากคุณเรียกใช้docker statsคุณจะเห็นว่ามีการใช้การเปลี่ยนแปลงแล้ว
slovit

@slovit และอื่น ๆ : จากนั้นคุณสามารถแก้ไขconfig.jsonไฟล์docker-machine เพื่อให้สอดคล้องกับขนาดจริงได้ ตัวอย่าง: สำหรับdefaultตามที่ใช้ในโซลูชันตัวอย่างให้แก้ไข~/.docker/machine/machines/default/config.jsonไฟล์เพื่อให้คุณสมบัติย่อยภายใต้Memory(และCPUถ้าแก้ไขด้วย) Driverเปลี่ยนเป็น4096. จากนั้นdocker-machine inspectจะแสดงค่าที่เหมาะสม
ScriptAutomate

80

สำหรับ Docker เวอร์ชัน 1.12.1 (build: 12133) และสูงกว่าบน macOS มีตัวเลือกในการเปลี่ยน CPU และ RAM จาก UI และรีสตาร์ท Docker คุณสามารถค้นหาค่ากำหนดจากแถบเครื่องมือ การแนบภาพเพื่อความชัดเจน

อัปเดต: ส.ค. 2020: การตั้งค่า -> ทรัพยากร (ขอบคุณที่ @ swedge218)

ขั้นตอนเก่า (อาจหมดอายุแล้ว): การตั้งค่า -> ขั้นสูง -> ปรับทรัพยากร -> ใช้และเริ่มต้นใหม่

https://www.dropbox.com/s/znltd1v4r00nfpu/Sc screenshot%202017-03-24%2012.12.58.png?dl=0

แท็บขั้นสูงนักเทียบท่า (หน่วยความจำ)


3
สิ่งนี้ได้ย้ายไปที่แท็บขั้นสูง ขอบคุณสำหรับการแบ่งปันสิ่งนี้
GabLeRoux

ผู้ชายที่ทั้งชัดเจนและไม่เข้าใจ - ขอบคุณ!
AlienWebguy

การเปลี่ยนแปลงเหล่านี้จะมีผลด้วยหรือไม่หากฉันใช้เรือบดกับ virtualbox หรือฉันควรใช้ VBoxManage เพื่อปรับขนาด mem เท่านั้น?
Artur79

2
มีบรรทัดคำสั่งเทียบเท่ากับสิ่งนี้หรือไม่? ฉันมี Docker สำหรับ mac แต่ดูเหมือนว่า docker-machine ls ไม่ให้อะไรเลยฉันจึงไม่สามารถแก้ไขเครื่องเริ่มต้นได้
Andrea Bergonzo

เป็นการตั้งค่า -> ทรัพยากร ณ วันนี้
swedge218

42

ผู้ดูแลเครื่องเทียบท่าที่นี่ ฉันไม่คิดว่าการปรับค่าconfig.jsonด้วยตนเองจะได้ผล

สองตัวเลือกของคุณคือสร้างเครื่องพร้อม--virtualbox-memoryชุดหรือปรับหน่วยความจำของ VM ใน VirtualBox GUI ("การตั้งค่า> ระบบ" สำหรับ VM นั้นฉันคิดว่า) ตรวจสอบให้แน่ใจว่าเครื่องปิดอยู่และควรมีแถบเลื่อนเล็กน้อยที่ใช้งานได้

แก้ไข: VBoxManageคำตอบอีกแสดงให้เห็นว่าคุณสามารถทำการดำเนินการในสถานที่จากบรรทัดคำสั่งเช่นกันโดยใช้


3
วิธีนี้ใช้งานได้ แต่โปรดทราบว่าdocker-machine inspectจะยังคงรายงานจำนวนหน่วยความจำเดิมแม้ว่าจะแก้ไขใน VirtualBox GUI แล้วก็ตาม
Tamlyn

2
ที่จริงเพื่อให้มีการdocker-machine inspectรายงานจำนวนเงินที่ถูกต้องที่คุณไม่ต้องแก้ไขconfig.json(ว่าที่inspectได้รับข้อมูล)
nathanleclaire

1
การทำใน Virtualbox นั้นง่ายที่สุด
Niranjan Sonachalam

14

ฉันไม่สามารถรับคำตอบอื่น ๆ ในการทำงาน สิ่งเดียวที่ได้ผลสำหรับฉันคือการลบเครื่องเริ่มต้นและสร้างใหม่โดยมีหน่วยความจำมากขึ้น

docker-machine rm default
docker-machine create -d virtualbox --virtualbox-memory=4096 --virtualbox-cpu-count=2 --virtualbox-disk-size=50000 default

พบการแก้ไขนี้ที่นี่: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Using_Docker_Machine_On_Windows?lang=en


14

คำตอบอื่น ๆ แสดงวิธีเปลี่ยนหน่วยความจำโดยใช้ VBoxManage:

docker-machine stop default
VBoxManage modifyvm default --memory 4096
docker-machine start default

เพื่อยืนยันการเปลี่ยนแปลงจากบรรทัดคำสั่ง:

VBoxManage showvminfo default | grep Memory

หรือ

docker-machine ssh default free

สวัสดี cpep คุณสามารถแก้ไขคำตอบและจัดรูปแบบรหัสบล็อกได้อย่างถูกต้องหรือไม่?
TT.

4

fox xhyve (การจำลองเสมือนอื่นภายใต้ macos) คุณสามารถแก้ไขคุณสมบัติ ~ / .docker / machine / default / config.json ไดร์เวอร์ / หน่วยความจำ (ค่าเริ่มต้นเป็น 1024) จากนั้นรีสตาร์ทเครื่องเทียบท่าเพื่อใช้การเปลี่ยนแปลง


~/.docker/machine/machines/default/config.jsonผมพบว่ามันอยู่ภายใต้ ขอบคุณ👍
Tarek N. Elsamni
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.