Przeglądaj źródła

microsd card optimisation daemon

Bob Mottram 7 lat temu
rodzic
commit
968319ded3
1 zmienionych plików z 42 dodań i 12 usunięć
  1. 42
    12
      src/freedombone-utils-setup

+ 42
- 12
src/freedombone-utils-setup Wyświetl plik

@@ -794,16 +794,46 @@ function install_shellcheck {
794 794
     apt-get -yq install shellcheck
795 795
 }
796 796
 
797
-function set_read_ahead {
798
-    # Setting this can significantly improve microSD read performance
799
-    read_ahead="$1"
800
-    if [ ! "$read_ahead" ]; then
801
-        read_ahead=4096
802
-    fi
803
-    if [ ! -f /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
804
-        return
805
-    fi
806
-    echo -n "$read_ahead" > /sys/devices/virtual/bdi/179:0/read_ahead_kb
797
+function microsd_card_optimisations {
798
+    # These values can improve performance on microSD cards
799
+    if [ ! -d /etc/network/if-up.d ]; then
800
+        mkdir /etc/network/if-up.d
801
+    fi
802
+    printf '#!/bin/bash\n' > /usr/bin/enable_optimisations
803
+
804
+    if [ -f /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
805
+        echo -n '4096' > /sys/devices/virtual/bdi/179:0/read_ahead_kb
806
+        echo "echo -n '4096' > /sys/devices/virtual/bdi/179:0/read_ahead_kb" >> /usr/bin/enable_optimisations
807
+    fi
808
+
809
+    if [ -f /proc/sys/vm/dirty_expire_centisecs ]; then
810
+        echo -n '100' > /proc/sys/vm/dirty_expire_centisecs
811
+        echo "echo -n '100' > /proc/sys/vm/dirty_expire_centisecs" >> /usr/bin/enable_optimisations
812
+    fi
813
+
814
+    if [ -f /proc/sys/vm/dirty_writeback_centisecs ]; then
815
+        echo -n '100' > /proc/sys/vm/dirty_writeback_centisecs
816
+        echo "echo -n '100' > /proc/sys/vm/dirty_writeback_centisecs" >> /usr/bin/enable_optimisations
817
+    fi
818
+
819
+    chmod +x /usr/bin/enable_optimisations
820
+
821
+    { echo '[Unit]';
822
+      echo "Description=${PROJECT_NAME} optimisations";
823
+      echo 'After=syslog.target';
824
+      echo 'After=network.target';
825
+      echo 'After=remote-fs.target';
826
+      echo '';
827
+      echo '[Service]';
828
+      echo 'Type=simple';
829
+      echo 'User=root';
830
+      echo 'Group=root';
831
+      echo 'WorkingDirectory=/root';
832
+      echo 'ExecStart=/usr/bin/enable_optimisations';
833
+      echo '';
834
+      echo '[Install]';
835
+      echo 'WantedBy=multi-user.target'; } > /etc/systemd/system/optimisations.service
836
+      systemctl enable optimisations
807 837
 }
808 838
 
809 839
 function setup_utils {
@@ -828,8 +858,8 @@ function setup_utils {
828 858
     function_check separate_tmp_filesystem
829 859
     separate_tmp_filesystem 150
830 860
 
831
-    function_check set_read_ahead
832
-    set_read_ahead 4096
861
+    function_check microsd_card_optimisations
862
+    microsd_card_optimisations
833 863
 
834 864
     function_check proc_filesystem_settings
835 865
     proc_filesystem_settings