@@ -827,14 +827,24 @@ function install_mongo(){
827
827
828
828
PIP_BREAK_SYSTEM_PACKAGES=1 pip3 install pymongo -U --break-system-packages
829
829
830
- sudo apt-get install -y ntp
831
- systemctl start ntp.service && sudo systemctl enable ntp.service
830
+ # sudo apt-get install -y ntp
831
+ # systemctl start ntp.service && sudo systemctl enable ntp.service
832
+ cat >> /lib/systemd/system/enable-transparent-huge-pages.service << EOF
833
+ # https://www.mongodb.com/docs/manual/administration/tcmalloc-performance/
834
+ [Unit]
835
+ Description=Enable Transparent Hugepages (THP)
836
+ DefaultDependencies=no
837
+ After=sysinit.target local-fs.target
838
+ Before=mongod.service
839
+ [Service]
840
+ Type=oneshot
841
+ ExecStart=/bin/sh -c 'echo always | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null && echo defer+madvise | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null && echo 0 | tee /sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none > /dev/null && echo 1 | tee /proc/sys/vm/overcommit_memory > /dev/null'
842
+ [Install]
843
+ WantedBy=basic.target
844
+ EOF
832
845
833
- if ! grep -q -E ' ^kernel/mm/transparent_hugepage/enabled' /etc/sysfs.conf; then
834
- sudo apt-get install -y sysfsutils
835
- echo " kernel/mm/transparent_hugepage/enabled = never" >> /etc/sysfs.conf
836
- echo " kernel/mm/transparent_hugepage/defrag = never" >> /etc/sysfs.conf
837
- fi
846
+ systemctl daemon-reload
847
+ sudo systemctl enable enable-transparent-huge-pages
838
848
839
849
if [ -f /lib/systemd/system/mongod.service ]; then
840
850
systemctl stop mongod.service
@@ -846,13 +856,14 @@ function install_mongo(){
846
856
847
857
if [ ! -f /lib/systemd/system/mongodb.service ]; then
848
858
crontab -l | { cat; echo " @reboot /bin/mkdir -p /data/configdb && /bin/mkdir -p /data/db && /bin/chown mongodb:mongodb /data -R" ; } | crontab -
849
- cat >> /lib/systemd/system/mongodb.service << EOF
859
+ cat >> /lib/systemd/system/mongodb.service << EOF
850
860
[Unit]
851
861
Description=High-performance, schema-free document-oriented database
852
862
Wants=network.target
853
863
After=network.target
854
864
[Service]
855
865
PermissionsStartOnly=true
866
+ Environment="GLIBC_TUNABLES=glibc.pthread.rseq=0"
856
867
#ExecStartPre=/bin/mkdir -p /data/{config,}db && /bin/chown mongodb:mongodb /data -R
857
868
# https://www.tutorialspoint.com/mongodb/mongodb_replication.htm
858
869
ExecStart=/usr/bin/numactl --interleave=all /usr/bin/mongod --setParameter "tcmallocReleaseRate=5.0"
877
888
systemctl enable mongodb.service
878
889
systemctl restart mongodb.service
879
890
880
- if ! crontab -l | grep -q -F ' delete-unused-file-data-in-mongo' ; then
881
- crontab -l | { cat; echo " 30 1 * * 0 cd /opt/CAPEv2 && sudo -u ${USER} /etc/poetry/bin/poetry run python ./utils/cleaners.py --delete-unused-file-data-in-mongo" ; } | crontab -
882
- fi
883
-
884
891
echo " https://www.percona.com/blog/2016/08/12/tuning-linux-for-mongodb/"
892
+ echo " net.ipv4.tcp_fastopen = 3" | sudo tee /etc/sysctl.d/30-tcp_fastopen.conf
893
+
885
894
else
886
895
echo " [+] Skipping MongoDB"
887
896
fi
@@ -1244,6 +1253,11 @@ function install_CAPE() {
1244
1253
# chown -R root:${USER} /usr/var/malheur/
1245
1254
# chmod -R =rwX,g=rwX,o=X /usr/var/malheur/
1246
1255
# Adapting owner permissions to the ${USER} path folder
1256
+
1257
+ if ! crontab -l | grep -q -F ' delete-unused-file-data-in-mongo' ; then
1258
+ crontab -l | { cat; echo " 30 1 * * 0 cd /opt/CAPEv2 && sudo -u ${USER} /etc/poetry/bin/poetry run python ./utils/cleaners.py --delete-unused-file-data-in-mongo" ; } | crontab -
1259
+ fi
1260
+
1247
1261
cd " /opt/CAPEv2/" || return
1248
1262
sudo -u ${USER} bash -c ' export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring; CRYPTOGRAPHY_DONT_BUILD_RUST=1 /etc/poetry/bin/poetry install'
1249
1263
0 commit comments