Showing posts with label VPS. Show all posts
Showing posts with label VPS. Show all posts

November 6, 2015

Chuyển thư mục lên RAM để tăng tốc website


Chuyển thư mục lên RAM để tăng tốc website

Chắc hẳn các bạn đều biết, RAM có tốc độ nhanh hơn ổ cứng rất nhiều nên ý tưởng chuyển thư mục hay tập tin lên RAM là ý tưởng khá hay để tăng tốc độ website tuy nhiên nhược điểm của RAM là sẽ mất đi khi khởi động lại server nên việc chuyển tập tin hay thư mục lên RAM để lưu trữ chỉ khả thi với các thư mục, tập tin không quan trọng và thích hợp nhất đó chỉnh là chuyển thư mục lưu file cache của website lên RAM vì khi server gặp vấn đề hay phải khởi động lại thì những tập tin cache này có mất đi thì cũng không quan trọng vì nó tự sinh ra trong quá trình website hoạt động.
Đối với website không có cache, khi người dùng truy cập vào website, nó sẽ phải truy vấn vào database để lấy dữ liệu và tải nội dung trong mã nguồn website rồi mới gửi lại cho người dùng. Thỉnh thoảng quá trình này diễn ra rất lâu nhất là khi website có nhiều người truy cập cùng một lúc sẽ dễ dẫn đến SQL bị thắt cổ chai 😀
Trong trường hợp đó, giải pháp lưu cache cho website là cách làm đơn giản  để tăng tốc website nhất là với các website không cập nhật nội dung thường xuyên. Nội dung cache sẽ được lưu trong file HTML tĩnh ở trên ổ cứng. Do đó khi người dùng truy cập trang web, nội dung sẽ được load từ file cache này nên rất nhanh
Như mình đã nói phần đầu, RAM có tốc độ nhanh hơn ổ cứng rất nhiều chính vì thế lưu cache trên RAM cũng sẽ nhanh hơn lưu cache trên ổ cứng rất nhiều
Lưu ý: Việc này chỉ thực hiện được trên Dedicated Server, VPS thôi nhé 😛

Cách chuyển thư mục, tập tin lên RAM?

Rất đơn giản, chúng ta chỉ cần tạo một phân vùng tmpfs và đưa  file hoặc thư mục cần chuyển lên ram
Tmpfs là một tập tin hệ thống được tạo ra để nhằm mục đích lưu trữ các tập tin tạm thời (tmp)
Việc này yêu cầu quyền root của server
 Thuộc tính -t để định nghĩa loại tập tin (ở đây là tmpfs)
 Thuộc tính -o để định nghĩa dung lượng mà bạn muốn cấp cho tập tin hay thư mục được phép sử dụng trên RAM
! Bạn phải nhập đường dẫn đầy đủ đến thư mục cần chuyển lên RAM
Bạn có thể cấp bao nhiều RAM tuỳ ý miễn là bạn có đủ RAM, ở đây mình cấp 1GB
Như vậy là xong rồi. Tuy nhiễn, mỗi khi khởi động lại mọi thứ sẽ trở về như cũ, nếu bạn muốn nó tự làm việc này thì mở file /etc/fstab lên và thêm dòng sau vào cuối file:

October 22, 2015

How to backup a full Centos Server?

Method 1:
The best tool to use for this is probably dump, which is a standard linux tool and will give you the whole filesystem. I would do something like this:
/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz
This will do a file system dump of / (make sure you don't need to dump any other mounts!), compress it with gzip and ssh it to a remote server (backupserver.example.com), storing it in /backup/. If you later need to browse the backup you use restore:
restore -i
Another option, if you don't have access to dump is to use tar and do something like
tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .
But tar does not handle changes in the file system as
http://serverfault.com/questions/120431/how-to-backup-a-full-centos-server

Method 2:
Backup Your Server's OS             
Making a backup of your Linux Operating System is a very simple process that uses tools included in every linux installation.                The first step is to create a location to store the backup. For this article we're going to store the backup on the same hard drive as the installed operating system, but you can attach USB devices like thumb drive and external hard drives and even special storage like iSCSI and NFS mounted device to store the backup.      Once you are logged into the server and at a command line make the directory to store the backup in an organized way such as:     
mkdir /backups
Now we will create a compressed version of the Operating System in one single file (tarball) using the tar command.     
For RedHat, CentOS and Fedora or any Operating System based on these linux flavors run the following command:        
tar cvpzf /backups/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backups --exclude=/dev --exclude=/sys --exclude=/boot/grub --exclude=/etc/fstab --exclude=/etc/sysconfig/network-scripts/ --exclude=/etc/udev/rules.d/70-persistent-net.rules /   
For Debian or Ubuntu run the following command:         
tar cvpzf /backups/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backups --exclude=/dev --exclude=/sys --exclude=/boot/grub --exclude=/etc/fstab --exclude=/etc/network/interfaces --exclude=/etc/udev/rules.d/70-persistent-net.rules /   
Once the command completes the tarball will be located at /backups/backup.tgz            
***HINT: You can change the name of the tarball file with a date identifier and keep multiple versions or "snapshots" of your server's configuration.       
Restore Your Server's OS From a Backup             
In order to restore your server from the previously created tarball the server must have the same Operating System version loaded on it. This particular method of backup and restore is not meant for bare metal projects that need to restore an Operating System to an empty hard drive. It was actually designed to move a configured Operating System from one hardware platform to another, but also works well for rolling back an operating system to a previous configuration.               
Once you have a working Operating System either on a new hardware platform or the same hardware platform move the tarball to the server you want to restore. If you stored the tarball on a USB device or other external storage just reattach the device and mount it. If the tarball is on another linux server use commands like this to copy it to the new server’s hard drive:   
mkdir /backups
scp root@original_server:/backups/backup.tgz /backups            
Of course replace "original_server" with the appropriate IP address.Enter the root users password and the transfer will begin.   Once the transfer has completed run this command to extract the tarball thereby restoring the Operating System that the tarball contains:              
tar xvpfz /backups/backup.tgz -C /
Complete the process with a reboot and troubleshoot any errors that may come up.     
https://www.serverpronto.com/kb/page.php?id=Backing+Up+and+Restore+Your+Server

Method 3:
Ok. The best way to go about this is using rsync. Install rsync on the VPS if it isn't already (probably is).
I am assuming that you have ssh server on the machine where you want the backup (your new VPS?) and that it is listening on the standard port 22.
On the machine where the backup will go, make a new directory called VPSbackup or whatever. Below you can see in the example I assume it is at /home/myuser/VPSbackup.
On your VPS, run:
 rsync -avz --exclude=/proc --exclude=/sys --exclude=/dev -e ssh / myuser@my_ip_address:/home/myuser/VPSbackup
You will then type in the password for myuser when you are prompted, and the backup will begin.
You can also do it in reverse, if you want to use rsync from the local machine (maybe you are behind NAT and/or don't have a public listening ssh server on the backup machine) like so:
rsync -avz --exclude=/proc --exclude=/sys --exclude=/dev -e ssh root@vps_ip_address:/ /home/myuser/VPSbackup
In either case, be patient---it'll take a while :-)
To restore the backup to your new VPS, first install the same version of CentOS on the VPS (just a vanilla install with SSH server) and copy the backup on to it.
From the new VPS:
rsync -avz -e ssh myuser@my_ip_address:/home/myuser/VPSbackup/* /
OR from the machine where the backup is:
rsync -avz -e ssh /home/myuser/VPSbackup/* root@new_vps_ip_address:/
Note that doing it using rsync will copy all the files on your VPS to the VPSbackup directory on the backup machine. If you want everything is one big backup file, then you may want to use tar via ssh like so (on the VPS machine):
tar zcvf - --exclude=/proc --exclude=/sys --exclude=/dev  / | ssh myuser@backupmachine_ip_addr "cat > /home/myuser/VPSbackup.tar.gz"
Then to restore to the new VPS (run this on the new VPS):
cd /
ssh myuser@backupmachine_ip_addr "cat /home/myuser/VPSbackup.tar.gz" | tar zxvf -

http://www.experts-exchange.com/OS/Linux/Q_28429417.html



                                          

September 7, 2015

Tạo crontab tự động bật lại MySQL khi bị stop trên VPS/Server

Với những VPS có RAM ít và bạn không rõ về config MySQL dẫn tới hiện tượng thi thoảng website quá tải và bị lỗi không thể kết nối tới database. Bài viết này sẽ hướng dẫn bạn cách khắc phục lỗi chết MySQL và tạo crontab  tự động khởi động lại dịch vụ MySQL trên VPS/Server khi  website bị hiển thị lỗi tương tự như dưới:

Error establishing a database connection

This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at localhost. This could mean your host’s database server is down.
  • Are you sure you have the correct username and password?
  • Are you sure that you have typed the correct hostname?
  • Are you sure that the database server is running?
If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.

1. Lệnh bật lại dịch vụ MySQL

Trên VPS Centos 
Centos 6 (MariaDB cũng dùng chung lệnh) :
Hoặc:
Centos 7
MySQL:
MariaDB:
 Trên VPS Ubuntu
Hoặc
Tùy trường hợp cụ thể trên server của bạn là mysql hay mysqld mà bạn chọn lệnh.

tu dong khoi dong lai mysql

2. Tạo Crontab tự động khởi động (bật ) lại MySQL

Khi service MySQL bị stop trên VPS do quá tải hoặc thiếu RAM, ta sẽ dùng lệnh trên để bật lại. Ngoài ra, bạn có thể tạo một crontab tự động check MySQL nếu dịch vụ này đang bị stop thì tự động bật lại.
Trước tiên cần tạo một file đặt tên là auto-start-mysql chẳng hạn, ta đặt file này trong folder root hoặc folder tùy ý bạn chọn. Sau đó chmod file này bằng lệnh:
Để thêm  vào VPS crontab tự động chạy auto-start-mysql 5 phút 1 lần  ta dùng lệnh:
Nội dung của  file auto-start-mysql  như sau:
Trên VPS Centos
Centos 6:
Centos 7:
MySQL:
MariaDB:
 Trên VPS Ubuntu
MySQL:
MariaDB: