Tôi hiện đang chạy một cá thể ec2 và tôi đã phát hiện ra rằng cá thể đó thỉnh thoảng hết bộ nhớ.
Ngoài việc sử dụng kích thước cá thể lớn hơn, còn có thể làm gì khác?
Tôi hiện đang chạy một cá thể ec2 và tôi đã phát hiện ra rằng cá thể đó thỉnh thoảng hết bộ nhớ.
Ngoài việc sử dụng kích thước cá thể lớn hơn, còn có thể làm gì khác?
Câu trả lời:
Một sửa chữa cho vấn đề này là thêm swap
(tức là paging
) không gian vào ví dụ.
Phân trang hoạt động bằng cách tạo một vùng trên ổ cứng của bạn và sử dụng nó cho bộ nhớ thêm, bộ nhớ này chậm hơn nhiều so với bộ nhớ bình thường, tuy nhiên có nhiều hơn thế.
Để thêm không gian bổ sung này vào ví dụ của bạn, bạn gõ:
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1
Nếu bạn cần nhiều hơn 1024 thì thay đổi nó thành một cái gì đó cao hơn.
Để bật nó theo mặc định sau khi khởi động lại, hãy thêm dòng này vào / etc / fstab:
/var/swap.1 swap swap defaults 0 0
if
nghĩa là 'tệp đầu vào', of
nghĩa là 'tệp đầu ra', bs
nghĩa là 'kích thước khối' và count
là số khối bạn muốn phân bổ, bạn có thể đọc man
trang của lệnh để biết thêm thông tin: linux.die.net/man/1/ dd
$> free -m
Việc hoán đổi phải diễn ra trên đĩa Lưu trữ Instance (phù du) chứ không phải thiết bị EBS. Trao đổi sẽ gây ra rất nhiều IO và sẽ tăng chi phí trên EBS. EBS cũng chậm hơn so với Instance Store và Instance Store miễn phí với một số loại EC2 nhất định .
Nó thường sẽ được gắn vào / mnt nhưng nếu không chạy
sudo mount /dev/xvda2 /mnt
Để sau đó tạo tệp hoán đổi trên thiết bị này, hãy làm như sau đối với tệp hoán đổi 4GB
sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=4096
Đảm bảo không người dùng nào khác có thể xem tệp hoán đổi
sudo chown root:root /mnt/swapfile
sudo chmod 600 /mnt/swapfile
Thực hiện và gắn cờ như trao đổi
sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile
Thêm / Đảm bảo các mục sau có trong / etc / fstab của bạn
/dev/xvda2 /mnt auto defaults,nobootwait,comment=cloudconfig 0 2
/mnt/swapfile swap swap defaults 0 0
cuối cùng cho phép trao đổi
sudo swapon -a
Sau khi áp dụng các bước được đề cập bởi ajtrichards, bạn có thể kiểm tra xem phiên bản tầng miễn phí amazon của bạn có đang sử dụng trao đổi bằng lệnh này không
cat /proc/meminfo
kết quả:
ubuntu@ip-172-31-24-245:/$ cat /proc/meminfo
MemTotal: 604340 kB
MemFree: 8524 kB
Buffers: 3380 kB
Cached: 398316 kB
SwapCached: 0 kB
Active: 165476 kB
Inactive: 384556 kB
Active(anon): 141344 kB
Inactive(anon): 7248 kB
Active(file): 24132 kB
Inactive(file): 377308 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
Trao đổi miễn phí: 1048572 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 148368 kB
Mapped: 14304 kB
Shmem: 256 kB
Slab: 26392 kB
SReclaimable: 18648 kB
SUnreclaim: 7744 kB
KernelStack: 736 kB
PageTables: 5060 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1350740 kB
Committed_AS: 623908 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 7420 kB
VmallocChunk: 34359728748 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 637952 kB
DirectMap2M: 0 kB
Bạn có thể thêm trao đổi 1 GB vào ví dụ của mình bằng các lệnh sau:
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile
Để bật nó theo mặc định sau khi khởi động lại, hãy thêm dòng này vào /etc/fstab
:
/swapfile swap swap defaults 0 0
/swapfile
. Nhưng bạn cũng có thể gắn kết một hệ thống tập tin khác và tạo tập tin hoán đổi ở đó, ví dụ /mnt/blah/swapfile
.
Nếu bạn đang ở trên t2
trường ( t2.micro
, t2.medium
, t2.small
), không có phù du hoặc dụ lưu trữ sẵn cho bạn. Vì vậy, bạn chỉ cần tạo trao đổi của bạn trong EBS
đó tùy thuộc vào trường hợp sử dụng của bạn có thể hoặc không thể là một ý tưởng tốt. Nếu không, hãy làm theo câu trả lời của @David và tạo trao đổi của bạn trên bộ lưu trữ phù du để tránh phải trả chi phí EBS.
Thông tin thêm: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html có một bảng cho biết dung lượng lưu trữ phù du bạn nhận được cho mỗi loại phiên bản.
For example, if you provision a volume with 1000 IOPS, and keep this volume for 15 days in a 30 day month, then in a Region that charges $0.10 per provisioned IOPS-month, you would be charged $50 for the IOPS that you provision ($0.10 per provisioned IOPS-month * 1000 IOPS provisioned * 15 days/30). You will be charged for the IOPS provisioned on a volume even when the volume is detached from an instance.
. Có vẻ như AWS sẽ tính phí cho các hoạt động đọc và ghi.
Bạn có thể tạo không gian hoán đổi bằng các bước sau Ở đây chúng tôi đang tạo trao đổi tại /home/
dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
Ở đây tính là số kilobyte của không gian hoán đổi
mkswap /home/swapfile1
vi /etc/fstab
thực hiện:
/home/swapfile1 swap swap defaults 0 0
chạy:
swapon -a
Chúng tôi có thể thêm không gian trao đổi trong bất kỳ máy chủ
tạo tập tin bằng lệnh dd
#dd if=/dev/zero of=/swapfile bs=1M count=2048
or
#dd if=/dev/zero of=/swapfile bs=1024M count=2
bs là kích thước khối và số lượng liên quan đến kích thước tính bằng MB hoặc GB
chúng ta có thể sử dụng ngược lại
Sau khi tạo, thay đổi sự cho phép của tập tin:
#chmod 600 /swapfile
Sau đó thực hiện tập tin:
#mkswap /swapfile
Sau đó kích hoạt tệp hoán đổi bằng lệnh hoán đổi:
#swapon /swapfile
Kiểm tra bằng lệnh miễn phí xem trao đổi có được bật hay không:
#free -h
#swapon -s
Tuy nhiên, ban đầu, sử dụng câu trả lời lưu trữ Instance của David đã có hiệu quả đối với tôi (trên m5d.2xlarge), sau khi dừng phiên bản EC2 và bật lại, tôi không thể quay lại ví dụ.
Nhật ký phiên bản đã báo cáo: "Bạn đang ở chế độ khẩn cấp. Sau khi đăng nhập, nhập" Tạp chí -xb "để xem nhật ký hệ thống," khởi động lại hệ thống "để khởi động lại," mặc định systemctl "hoặc" thoát "để khởi động vào chế độ mặc định. để bảo trì "
Thay vào đó, tôi đã làm theo các hướng dẫn AWS trong liên kết này và mọi thứ hoạt động hoàn hảo, bao gồm cả sau khi tắt và bật lại ví dụ.
https://aws.amazon.com/premiumsupport/ledgeledge-center/ec2-memory-swap-file/
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
sudo vi /etc/fstab
/swapfile swap swap defaults 0 0
Hãy thử hoán đổi http://pqxx.org/development/swapspace/
Hầu hết các distro có nó được đóng gói.
Trên EC2, bạn có thể muốn thay đổi "swappath" thành / mnt hoặc đĩa iops cao.
Bạn có thể sử dụng tập lệnh sau để thêm trao đổi trên Amazon Linux.
https://github.com/chetankapoor/swap
Tải xuống tập lệnh bằng wget:
wget https://raw.githubusercontent.com/chetankapoor/swap/master/swap.sh -O swap.sh
Sau đó chạy tập lệnh với định dạng sau:
sh swap.sh 2G
Đối với một hướng dẫn đầy đủ, bạn có thể truy cập: